mysql db query_query多次执行

执行mysql语句
,这篇文章的文类目录是:,将加入收藏夹。
phpdo-学习PHP的笔记&&保留所有权利.
&Theme by &&
基于 WordPress 技术创建你的位置:
&& PHP中操作mysql执行存储过程
PHP中操作mysql执行存储过程
存储过程和函数是MySql5.0中引入的。关于这方面的操作在PHP里面没有直接的支持。但是由于Mysql PHP API的设计,使得我们可以在以前的PHP版本中的mysql php api中支持存储过程和函数的调用。
在php中调用存储过程和函数。
1.调用存储过程的方法。
a. 如果存储过程有 IN/INOUT参数,声明一个变量,输入参数给存储过程,该变量是一对, 一个php变量(也可以不必,只是没有php变量时,没有办法进行动态输入),一个Mysql变量。
b.如果存储过程有OUT变量,声明一个Mysql变量。mysql变量的声明比较特殊,必须让mysql服务器知道此变量的存在,其实也就是执行一条mysql语句。
如 set @mysqlvar=$
c.使用mysql_query()/mysql_db_query()执行mysql 变量声明语句。
mysql_query(&set @mysqlvar [=$pbpvar]&);
这样,在mysql服务器里面就有一个变量,@mysqlar。如果时IN参数,那么其值可以有phpar传入。
d. 如果是存储过程。
1. 执行 call procedure()语句。
也就是mysql_query(&call proceduer([var1]&)&);
2. 如果有返回值,执行select @ar,返回执行结果。
mysql_query(&select @var)&
接下来的操作就和php执行一般的mysql语句一样了。可以通过mydql_fetch_row()等函数获得结果。
如果时函数。 直接执行 select function() 就可以了。
$host="localhost";
$user="root";
$passWord="11212";
$db="samp_db";
$dblink=mysql_connect($host,$user,$password)
or die("can't connect to mysql");
mysql_select_db($db,$dblink)
or die("can't select samp_db");
$res=mysql_query("set @a=$password",$dblink);
$res=mysql_query("call aa(@a)",$dblink);
$res=mysql_query("select @a",$dblink);
$row=mysql_fetch_row($res);
echo $row[0];
来自:http://fendou.org//php-mysql-procedure/
本文发表于米花网
,转载请注明。
看了这篇文章您的心情是:【已经有18人表态】
(游客)12-07 帅哥(游客)12-07 帅哥(游客)12-07 侯门深似海(游客)12-07 侯门深似海(游客)12-07 侯门深似海(游客)12-07 侯门深似海(游客)12-04 婆婆是位有心人!(游客)12-04 是滴,因为我毕业了,感觉这是有必要滴(游客)12-04 十大呢,才一个的?(游客)12-04 哟西~(游客)12-04 她的举动拉近了人和人间的距离,让小小的善举变得更加;mySQL 为什么程序里面连续调用两次mysql_query()会出错_百度知道
mySQL 为什么程序里面连续调用两次mysql_query()会出错
“select *from event”) ;第二步,为什么; 我的程序:relt=mysql_query(mysql:relt=mysql_query(mysql; 这是为什么,“select *from event”) ? 第一步;结果:relt=mysql_query(mysql:第一步:relt=0,“insert into event(time) values(100)”) ,“select *from event”) :relt=mysql_query(mysql:relt=1; 结果;第二步;
结果; 结果:relt=0:relt=1? 改如何解决我在程序里面连续调用mysql_query(),第二句mysql_query()就返回非0(执行错误)
不调用mysql_store_result() 只用执行了mysql_query()需要mysq_free_result()吗
我有更好的答案
按默认排序
两个sql都有问题;第二个你括号全打错了,而不是中文的()&quot,应该是英文的括号();insert into event (time) values(100)&quot,第一个要空格&select * from event&quot
语法是没有错误的,要不然不可能第一个对,第二个错,因为两个都是一样的语句。 语法的问题你可以忽略掉了。我这里打出来只是描述问题,不是代码哈。语法是没有错的,我问的是 为什么执行一次mysql_query(mysql,“select *from event”) ;之后,后面再执行mysql_query(mysql,“select *from event”) ;就出错了。
每次使用mysql_real_query()后调用mysql_free_result(result);再执行下一句mysql_real_query();
其他类似问题
mysql的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁MYSQL的有关问题,执行mysql_real_query时程序崩溃了,找到有关问题不知道如何解决,100分求帮助_使用vfork函数时出现总线异常_大家伙儿做JSP网站开发,用什么工具,用到什么技术__脚本百事通
稍等,加载中……
^_^请注意,有可能下面的2篇文章才是您想要的内容:
MYSQL的有关问题,执行mysql_real_query时程序崩溃了,找到有关问题不知道如何解决,100分求帮助
使用vfork函数时出现总线异常
大家伙儿做JSP网站开发,用什么工具,用到什么技术
MYSQL的有关问题,执行mysql_real_query时程序崩溃了,找到有关问题不知道如何解决,100分求帮助
MYSQL的问题,执行mysql_real_query时程序崩溃了,找到问题不知道怎么解决,100分求帮助!我的程序文件名是q.fcgi,C语言写的, 然后用lighttpd启动了3个,3个进程完全一模一样,因为是一个程序嘛程序启动的时候把数据库里所有数据加载到了内存每时每刻程序都接收请求并处理,然后我1小时会更新一次内存的数据,就是把数据库新加的数据插入到内存中..每次定时器启动,如果数据库新加了数据,3个进程前面2个进程执行下面代码会没问题,但第3个进程就会崩溃...Mysql语句就算执行出错也不会程序崩溃的,我这里估计是执行语句的时候操作内存非法了导致崩溃,有时候2个进程会执行崩溃,但第3个进程很大可能会挂------解决方案--------------------int len =strlen(sql);好像要+1的说,这个不算\0的
------解决方案--------------------C/C++ code
#include &stdio.h&
#include &stdlib.h&
#ifdef WIN32
#include &winsock2.h&
#ifndef WIN32_LEAN_AND_MEAN
#define WIN32_LEAN_AND_MEAN
#include &windows.h&
#include &process.h&
#include &unistd.h&
#include &string.h&
#include "mysql5/mysql.h"
#pragma comment(lib, "libmysql.lib")
int main(void)
MYSQL* mysql_insert = NULL;
MYSQL_RES *result = NULL;
char sql[100] = {0};
int len = 0;
mysql_insert = mysql_init((MYSQL*)NULL);
//初始化数据库
//mysql_init(mysql_insert);
if(mysql_insert==NULL)
return -1;
//连接数据库
mysql_insert = mysql_real_connect(mysql_insert, "192.168.1.63", "user", "pwd", NULL, 3306, NULL, 0);
if(!mysql_insert) return -1;
//选择数据库表
if(mysql_select_db(mysql_insert, "db") != 0) return -1;
sprintf(sql, "select id, title, artist, lrc from %s where id & %d order by id", "user", 100);
len =strlen(sql);
//设置mysql编码
mysql_query(mysql_insert,"SET NAMES utf8");
printf("ready to query\n");
if(mysql_real_query(mysql_insert, sql, len)!=0) //执行查询sql语句,在此会出错并且程序崩溃
printf("last error %s\n", mysql_error(mysql_insert)); //执行不到
return -1;
printf("ready to getdata\n");
//读取查询到的信息
if(!(result=mysql_store_result(mysql_insert))) //上面没崩溃,这里也可能崩溃
return -1;
while(row = mysql_fetch_row(result))
//做将数据插入到内存的map表中
//释放记录
mysql_free_result(result);
mysql_close(mysql_insert);
mysql_insert = NULL;
return (0);
------解决方案--------------------
用法上面我觉得没什么大问题,关键是细节要看看,如果有返回值的话,多判下总没什么大错误
------解决方案--------------------
回 hawk198我拷贝你的代码看看。我现在在用信号量来控制,主要是代码本身并没问题但是在3个进程同时执行这个代码的时候第1,2个进程基本不出问题,但第3个进程很大可能崩溃!!
------解决方案--------------------
这个有可能是你使用的MYSQL的头文件与链接的 libmysql.lib 版本不一致导致的,
头文件用的新的版本,而lib,dll用了旧的版本, 你可以去MYSQL上下载一个最新的开发版本,将头文件,lib,dll全换成统一的版本,再试试看.我原来也碰到过类似的莫名其妙的问题, 后面才发现是头文件与lib版本不一致导致的.
使用vfork函数时出现总线异常
使用vfork函数时出现总线错误在学习进程编程的时候,发现了一个有意思的事情,代码如下:
#include &unistd.h&
#include &stdio.h&
if( vfork() ==0 )
printf(“This is the child process\n”);
printf(“This is the parent process\n”);
这个程序看似没有任何问题,但在Centos 6.3系统中实际运行时错误还很惊人!他会一直不停地交互输出那两句话,一直输出了有五万多行!!!!!然后我把源程序拷贝到RHEL5中运行时,这时报错了说是总线错误,仔细查看了APUE之后才知道真正的原因!!
先看vfork和fork的区别和相同点:
1、fork()用于创建一个新进程。由fork()创建的子进程是父进程的副本。即子进程获取父进程数据空间,堆和 栈的副本。父子进程之间不共享这些存储空间的部分。而vfork()创建的进程并不将父进程的地址空间完全复制到子进程中,因为子进程会立即调用exec (或exit)于是也就不会存放该地址空间。相反,在子进程调用exec或exit之前,它在父进程的空间进行。
2、vfork()与fork()另一个区别就是:vfork保证子进程先运行,在调用exec或exit之前与父进程数据是共享的,在它调用exec或exit之后父进程才可能被调度运行。
3,vfork和fork之间的还有一个区别是: vfork保证子进程先运行,在她调用exec或exit之后父进程才可能被调度运行。如果在调用这两个函数之前子进程依赖于父进程的进一步动作,则会导致死锁。相同:
1、两者被调用一次,但是返回两次。两次返回的唯一区别是子进程的返回值是0,而父进程的返回值则是新子进程的进程ID。
再去查阅有关信号量的章节时,发现问题了:
这是因为父进程执行了return时,执行了一个无效的内存引用,信号为
SIGSEGV 默认动作是异常终止,解决的办法是将return改exit即可。
大家伙儿做JSP网站开发,用什么工具,用到什么技术
大家做JSP网站开发,用什么工具,用到什么技术?以前我也是做JAVA开发的,什么技术都学点儿(struts1.2
hibernate spring html)但没有真正开发过网站。想问一下,大家现在用什么工具开发中小型的网站,在开发过程中都用到什么技术了?------解决方案--------------------IDE一般是用 eclipse啊,这个就够了
------解决方案--------------------所用技术:Struts+Hibernate +Spring
开发数据库:
应用服务器:
开发工具: 
Myeclipse6.0
------解决方案--------------------Struts2.0+Hibernate3.0 +Spring2.5+freemarker数据库:
Oracle10g应用服务器:Tomcat6.0
开发工具: 
Myeclipse6.0------解决方案--------------------myeclipse 这工具好用,下载安装就成,用eclipse还要配置,另外用sql server 2000数据库,和mvc开发框架啊,还有一些框架技术,主流是ssh。首先java要学好啊!还有就是要学js,再就是Ajax!目前Ajax是流行技术,嘿嘿 我没学呢!最好是做项目,这样进步很快!我在找工作!
------解决方案--------------------工具:Eclipse足可以了!技术:首先你要明白Hibernate是一种OR映射框架的数据库持久化工具。而Spring提供对持久层得整合,如对JDBC的使用加以封装与简化,提供食物管理功能。在一些小型应用当中,这两者得结合可以用简单的JavaBean实现以前只有EJB才能实现得功能。所以,你得了解你要根据项目来界定究竟用不用这两种技术。另外,你说的Junit是一个单元测试软件。我想程序员都应该掌握一定得测试技术吧。而ant是一个构建工具,它可以根据构建文件来自动进行项目编译、打包、测试,所以最起码要懂一点才好吧。不过ant 在Eclipse中已经集成了,与其问要不要掌握什么技术,倒不如问问用什么进行开发好了,现在很流行使用Eclipse进行开发,如果你装上一些lomboz这种插件就可以进行J2EE开发。通过对它得使用可以了解诸如版本管理、测试、日志管理、封装数据库、调试等各个方面了。
------解决方案--------------------中小网站用phpjava是牛刀
用来杀鸡是费时又费力php mysql apache
ext 复杂了点jquery很好上外国网站扒几个页面模板
开始动手做吧提前声明:没钱赚的哦
------解决方案--------------------开发用myeclipes
页面用Dreamweaver
数据库用mysql
------解决方案--------------------开发工具
jsp,servlet,javabean
struts,hibernate,spring,adjx.
------解决方案--------------------楼上不少 一来就是SSH
项目小建议使用javaBean+Servlet+JDBC
中大型用SSH或SSB
------解决方案--------------------所用技术:Struts+Hibernate +Spring
开发数据库:SQl Server 2005 或2008开发工具
jsp,servlet,javabean
------解决方案--------------------做页面要出效果图的话用photoshop效果图做成静态页面的话用DreamWaver把静态页面做成jsp的话用myEclipse如果有数据库用mysql架构方面你可以用extjs+struts+spring+hibernate不过这样已经是ejb级别的了,做小网站就有点不好了如果浏览量不超出5oo流量每天的话,你可以用jsp+servlet做就好了不过网站主要是两个方面一个前台界面,以后台性能,所以photoshop还是要会一点的,用来处理图片DreamWaver不错用来处理css+div一个网站用的所有语言,现在流行的就是Div+css+一个后台语言比如jsp asp php
------解决方案--------------------工具myeclipse,或eclipse+ant/maven,页面设计用dreamwaver,用到技术有javaee,ssh,数据库,ajax,jquery,dwr等~```
如果您喜欢IT行业或者对IT行业感兴趣,想开拓技术视野,欢迎加入本站官方QQ群:,在群里认识新朋友和交流技术^_^
本站联系邮箱:

我要回帖

更多关于 mysql query 的文章

 

随机推荐