PHP脚本在预准备语句中的execute()处停止执行

时间:2014-10-24 10:26:35

标签: php mysql mysqli prepared-statement

我编写了一个带有预处理语句的php脚本。在我的本地xampp服务器上(PHP版本5.5.15,MYSLQI mysqlnd 5.0.11-dev)它完美地运行。 现在更改服务器(PHP版本5.3.26,MYSQLI 5.1.36)它不再起作用。它开始执行脚本,但直接在第一个get_result()命令之前停止。

//read DB entries
$sql_topic = "SELECT * FROM topic ORDER BY ID DESC";

$var = "naventry";

//prepared statement
$query = $mysqli->prepare($sql_topic);
$query -> execute();
//-------------------

//topic loop
if ($query = $query->get_result()) {
    while($topic = $query->fetch_assoc()) {

错误日志中没有任何信息,我也不知道在哪里搜索解决方案。

希望对你有所帮助!! pplopp

1 个答案:

答案 0 :(得分:1)

要了解有什么问题的更多线索,请测试代码的每个输出:

// enable all errors for debugging
error_reporting(E_ALL);
ini_set('display_errors', 'On');

$query = $mysqli->prepare($sql_topic);
if (!$query)
  die($mysqli->error);
$res = $query->execute();
if (!$res)
{
   die($query->error);
}

请记住在将代码投入生产时删除这些错误(或die()替换debug()(您需要编写自己的代码)或file_put_contents,error_log,...