PHP调用MYSQL存储过程 不报错的解决方法
前两天跟同事一起开发一套库存管理,我负责写页面程序,同事负责写存储过程,写程序时一切进展很顺利,直到开发完成,我用php调用他的存储过程时问题发生了。
以后开发时需要注意以下几点:
1、连接mysql时要注意后两个参数
define('client_multi_results', 131072); //定义常量
$conn=mysql_connect("localhost","root","123456",1,client_multi_results);
$db=mysql_select_db("db01",$conn);
2、调用存储过程方法
很简单共有两种方法
(1)无返回值
mysql_query("call nj_keep_accounts_sp($id)",$conn); // 存储过程名称: nj_keep_accounts_sp 参数:$id
(2)有返回值
$id=$_get["id"];
$r=mysql_query("call nj_keep_accounts_sp($id)",$conn);
while($rs=@mysql_fetch_array($r)){
echo($rs["t_id"]);
}
3、如果调试的时不报错,经常执行不稳定,一会好用一会不好用请注意
我在测试的时候发生过这种事情,发现代码本身无错误,存储过程在mysql里执行也没有出错,问题发生在哪呢?
经过两天的测试最终发现,写存储过程的时候调试过程中在执行开始、中间、结尾部份都加了测试返回值。问题就发生在这里。
我把没用的返回值(如:select @a)类似这种代码全注释之后才发现以前的问题全部解决了,程序也好用了。
摘自 newsera
推荐阅读
-
Python简单调用MySQL存储过程并获得返回值的方法
-
C#中调用MySQL存储过程的方法
-
php调用MySQL存储过程的方法集合(推荐)
-
解析:php调用MsSQL存储过程使用内置RETVAL获取过程中的return值
-
php调用mysql存储过程实例分析
-
MySQL存储表情时报错:java.sql.SQLException: Incorrect string value:‘\xF0\x9F\x92\xA9\x0D\x0A...’的解决方法
-
MySQL存储表情时报错:java.sql.SQLException: Incorrect string value:‘\xF0\x9F\x92\xA9\x0D\x0A...’的解决方法
-
PHP调用MsSQL Server 2012存储过程获取多结果集(包含output参数)的详解
-
php调用mysql存储过程
-
用PHP调用Oracle存储过程的方法