mysqli,php存储过程没有执行:获取错误

时间:2010-09-25 17:16:27

标签: php stored-procedures mysqli

$link = mysqli_connect("localhost",
"username", "testpassword",
"dbname")or die('connection
problem');

/* check connection */ if
(mysqli_connect_errno()) {   
printf("Connect failed: %s\n",
mysqli_connect_error());    exit(); }

//if ($result = mysqli_query($link,
"CALL my_sqrt(Other,@out_value)")) {

$result = mysqli_query($link, "CALL  show_sp_test()");

$row_cnt = mysqli_num_rows($result);

printf("Result set has %d rows.\n",
$row_cnt);

/* close result set */   
mysqli_free_result($result); //}

/* close connection */
mysqli_close($link);

我收到了像

这样的错误
  

警告:mysqli_num_rows()期望参数1为mysqli_result,   第19行的sample-sp.php中给出的boolean       结果集有0行。       警告:mysqli_free_result()要求参数1为mysqli_result,第24行的sample-sp.php中给出布尔值

但我将存储过程CALL更改为正常查询工作正常,

告诉我,有什么事我应该检查/,

我的代码段中是否有任何错误

注意:在我的服务器MYSQLI启用

由于

1 个答案:

答案 0 :(得分:0)

您的查询中似乎有错误。

如果mysqli_query失败,则不会检查返回false的返回值。您可以通过将mysqli_error($link)称为

来获取失败的原因
$result = mysqli_query($link, "CALL show_sp_test()");
if(!$result) {
    die('Invalid query: ' . mysqli_error($link));
}