Home >Backend Development >PHP Tutorial > php调用mysql存储过程有关问题
php调用mysql存储过程问题
为什么我调用一次存储过程后再做其他查询后就错误了呢?
-------------------------
我要php调用mysql存储过程来查询表中所有数据,正常得出结果.
紧接着做其他查询时,不管使用什么语句都返回错误.
这是存储过程:
#查询shares表中的数据
#call proc_show_shares('sendtime'); //排序对象
delimiter //
DROP PROCEDURE IF EXISTS proc_show_shares //
CREATE PROCEDURE proc_show_shares (in sorttype varchar(15))
BEGIN
Set @sql = concat("select* from shares order by ", sorttype," desc");
PREPARE cmd from @sql;
EXECUTEcmd;
DEALLOCATEPREPARE cmd;
END//
delimiter ;
以下代码运行正常:
$query = "call proc_show_shares('sendtime')";
$results = mysql_query($query); //调用存储过程
while($result_row = mysql_fetch_row($results))
{
//{代码段}
$values[] = $result_row;
}
其中{代码段}是被注释掉的.当取消注释时,就错误了.
代码段为:
$result = mysql_query("select name from users where id = 10001") or die('靠');
上面的sql语句单独运行正常(当然是有结果的),连在一起就输出'靠'了.
为什么?
我可以输出values,但是加上mysql_query("select name from users where id = 10001") or die('靠');就不行了.然而这条语句本身是正确的.
所有过程中数据库一直是连接状态的.