我试图从数据库中填写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);
?>
答案 0 :(得分:0)
我的猜测(这只是猜测......)
第一个结果集(游标)仍处于打开状态。光标尚未关闭。 (Myabe目前的结果集中还有更多的行尚未获取。或者通过发布结束已经放弃了。
尝试准备(执行)第二个语句(在同一个数据库连接上)导致错误。
(阿吉安,这只是猜测,绝不是对问题的实际诊断。)
我的建议是启用错误报告。如果SQL语句执行返回FALSE,那么我们需要从数据库中检索错误代码和错误消息。或者考虑启用PDO异常,以便抛出错误,以便我们可以看到它们。 (使用mysqli可能会有类似的东西。)
FALSE的返回告诉我们发生了错误,但它没有告诉我们错误 。 (如果没有这个,那将很难知道要解决什么问题。)
在某些情况下,我们可能并不关心错误是什么。在这种情况下,很明显我们会关心。我们的工作就是找出错误是什么......如果没有诊断错误的根本原因,那么任何处方处方的尝试都将成为&#34;试试这个&#34;并且&#34;试试&#34;在没有瞄准的情况下在黑暗中射击,希望能够击中某些东西。
推荐阅读:
https://ericlippert.com/2014/03/05/how-to-debug-small-programs/