错误信息:
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:
<?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]."&nbsp;&nbsp;".$row[2]."&nbsp;&nbsp;".$row[2]."<br>";
}
?>Mysql:
CREATE PROCEDURE list()
BEGIN
select * from users;
END;mysqli与mysql都用过了,情况都是一样,用SQL语句就没问题,但是调用存储过程就不行

解决方案 »

  1.   


    $result = mysqli_query('select * from users', $conn);//$conn是mysql_connect返回值(可有可无)
      

  2.   

    能详细解释一下吗?
    为什么执行SQL语句时就OK,存储过程就不行呢?
      

  3.   

    就是 存储过程 
    CREATE PROCEDURE list()
    BEGIN
    select * from users;
    END;
      

  4.   

    list是否没有在数据库test上面,我测试没问题
      

  5.   

    php调用MySQL存储过程方法集合~
     传送门~
      

  6.   

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

  7.   

    错误提示$result必须是 mysql Resource  而你这返回的是boolean你检查一下是不是语句定界符的错误
      

  8.   

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

  9.   


    参考这里 :http://blog.csdn.net/huichengongzi/article/details/5571346
      

  10.   

    你看看你的mysqli扩展打开没?
      

  11.   

    你在mysql编辑器里面,执行下存储过程看看,看可以执行不?然后在php调用试试