我正在尝试使用PHP调用基本存储过程。但是mysql会产生一个错误,例如“PROCEDURE softland.getAllProducts无法在给定的上下文中返回结果集”。
存储过程
DELIMITER //
CREATE PROCEDURE GetAllProducts()
BEGIN
SELECT * FROM products;
END //
DELIMITER ;
PHP代码
<?php
$con=mysql_connect("localhost","root","");
mysql_select_db("softland",$con);
$id = 1;
$result = mysql_query("call getAllProducts()");
echo $result;
if ($result === FALSE) {
die(mysql_error());
}
while($row=mysql_fetch_array($result)){
echo "<br>".$row['name'];
}
echo "Succees";
?>
答案 0 :(得分:1)
嗯,这个答案直接来自mysql_connect上的php页面:
$ this-&gt; con = mysql_connect($ this-&gt; h,$ this-&gt; u,$ this-&gt; p,false,65536);
告诉你的mysql客户端使用多语句支持(另请参阅mysql客户端常量:http://php.net/manual/en/mysql.constants.php#mysql.client-flags)
答案 1 :(得分:0)
试试这个,
Function GetProducts($out)
{
$query.= "CREATE PROCEDURE GetAllProducts() ";
$query.= "BEGIN";
$query.= "SELECT * FROM products;";
$query.= "END";
return $query;
}
在代码中,
$result = mysql_query(GetProducts());
希望有效!!
答案 2 :(得分:0)
我认为问题在于您使用旧的mysql函数而不是newer mysqli library。
尝试按照this manual page上的示例进行操作。