因此,我正在使用PHP并准备好发送到MySQL数据库的语句。我遇到了一个我无法完全调试的问题。这里是我的代码:PHP - 准备好的语句查询第二次不起作用
// Check if the input username is in the database
\t \t $stmtQuery = "SELECT * FROM updatedplayers WHERE Player=?;";
\t \t $preparedStmt = $dbc->prepare($stmtQuery);
\t \t $preparedStmt->bind_param("s", $setUsername);
\t \t $preparedStmt->execute();
\t \t $preparedStmt->bind_result($resultUUID, $resultUsername);
\t \t $preparedStmt->fetch();
\t \t // If it's not, kill the page.
\t \t if ($resultUUID == null) {
\t \t \t incorrect();
\t \t }
\t \t
\t \t $stmtQuery = "SELECT Password, Salt FROM logins WHERE UUID=?;";
\t \t echo 'flag1 ';
\t \t $preparedStmt = $dbc->prepare($stmtQuery);
\t \t echo 'flag2 ';
\t \t $preparedStmt->bind_param("s", $resultUUID);
\t \t echo 'flag3 ';
拳头准备好的语句工作正常,这是在该行$preparedStmt->bind_param("s", $resultUUID);
。在这之前还有其他一些准备好的陈述,所以我知道我正确地做了这件事,但我不太清楚最后的陈述。
该代码似乎停止运行后echo 'flag2 ';
,我放在那里找到具体的行。我没有收到任何错误消息,只是不打印出flag3
。
我试过用静态字符串代替$resultUUID
,但我得到了相同的结果。另外,我知道我的SQL语句格式正确,我已经在控制台中手动进行了测试。
这是非常多的,我很想听到一些批评,因为我是PHP新手。另外,有什么方法可以更好地了解我所得到的错误,而不是试图自己查明错误吗?谢谢!
'mysqli'驱动程序有错误报告功能,http://php.net/manual/en/mysqli.error.php。尝试在每个数据库交互中使用它。可能还想查看http://stackoverflow.com/questions/22662488/how-to-get-mysqli-error-in-different-environments以获取更多mysqli错误报告选项。 – chris85
任何错误报告的运气? – chris85
@ chris85我目前没有时间填写该表。我后天会有时间,然后我会回到你身边。 :) – Kaelinator