尝试第二次查询后,$ rows返回null

时间:2018-04-13 14:34:56

标签: php mysql

我试图从数据库中填写2个下拉列表,因此我尝试进行一次查询并填充第一个下拉列表,然后尝试创建第二个下拉列表并填充最后一个下拉列表。

它将第二个$行返回为false,但首先是好的,我做错了什么?

test

这是我的两个功能:

<?php 
  $db = new Db();     
  $rows = $db -> select("call Store1(0,0);");
  var_dump($rows);  
  $rows = $db -> select("call Store1(0,0);");           
  var_dump($rows);
?>  

1 个答案:

答案 0 :(得分:0)

我的猜测(这只是猜测......)

第一个结果集(游标)仍处于打开状态。光标尚未关闭。 (Myabe目前的结果集中还有更多的行尚未获取。或者通过发布结束已经放弃了。

尝试准备(执行)第二个语句(在同一个数据库连接上)导致错误。

(阿吉安,这只是猜测,绝不是对问题的实际诊断。)

我的建议是启用错误报告。如果SQL语句执行返回FALSE,那么我们需要从数据库中检索错误代码和错误消息。或者考虑启用PDO异常,以便抛出错误,以便我们可以看到它们。 (使用mysqli可能会有类似的东西。)

FALSE的返回告诉我们发生了错误,但它没有告诉我们错误 。 (如果没有这个,那将很难知道要解决什么问题。)

在某些情况下,我们可能并不关心错误是什么。在这种情况下,很明显我们会关心。我们的工作就是找出错误是什么......如果没有诊断错误的根本原因,那么任何处方处方的尝试都将成为&#34;试试这个&#34;并且&#34;试试&#34;在没有瞄准的情况下在黑暗中射击,希望能够击中某些东西。

推荐阅读:

https://ericlippert.com/2014/03/05/how-to-debug-small-programs/