>백엔드 개발 >PHP 튜토리얼 > PHP调用MYSQL存储过程

PHP调用MYSQL存储过程

WBOY
WBOY원래의
2016-06-13 13:36:451027검색

PHP调用MYSQL存储过程求助
错误信息:
Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in D:\RUIOA\webroot\MyPHP\News\test.php on line 37


PHP:
$conn = mysqli_connect("localhost","root","chen");
mysqli_select_db($conn,"test");
$result = mysqli_query($conn,"call list();"); ==============>这里换成"select * from users;"就正常读出数据
while($row = mysqli_fetch_array($result)){
echo $row[1]."  ".$row[2]."  ".$row[2]."
";
}
?>

Mysql:
CREATE PROCEDURE list()
BEGIN
select * from users;
END;



mysqli与mysql都用过了,情况都是一样,用SQL语句就没问题,但是调用存储过程就不行

------解决方案--------------------

$result = mysqli_query('select * from users', $conn);//$conn是mysql_connect返回值(可有可无)
------解决方案--------------------
存储过程是什么意思...
------解决方案--------------------
还没用过存储过程这种高级东西
------解决方案--------------------
list是否没有在数据库test上面,我测试没问题
------解决方案--------------------
php调用MySQL存储过程方法集合~
传送门~

------解决方案--------------------
找一下rong framework,有Rong_Db_Driver_Mysqli::call($sql) 这个方法,是用来调用存储过程的。

------解决方案--------------------
错误提示$result必须是 mysql Resource 而你这返回的是boolean

你检查一下是不是语句定界符的错误
------解决方案--------------------

探讨

还有,补充一下如果是增删改的存储过程是能正常执行的,数据也正常改变,就是只要是返回SELECT的查询就会报错
PROCEDURE test.sel can't return a result set in the given context

------解决方案--------------------
你看看你的mysqli扩展打开没?
------解决方案--------------------
你在mysql编辑器里面,执行下存储过程看看,看可以执行不?然后在php调用试试
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.