php - PHP内部服务器错误,带有$ statement-> execute

标签 php error-handling mysqli prepared-statement internal-server-error

因此,我将PHP与Mysqli结合使用,并且试图运行一个非常基本的准备好的语句:

$stmt = $mysqli->prepare("SELECT field FROM blubb WHERE id=? AND username=? LIMIT 1");

while($doingStuff){
  // Do Stuff
  $stmt->bind_param("is", $id, $username);
  $stmt->execute();
  // Do Stuff
}

但是,当我尝试运行执行程序时,出现内部服务器错误。

我已经设定
error_reporting(E_ALL);
ini_set("display_errors", 1);

在我的脚本中,以为我可能会收到一条错误消息以了解出了什么问题,但这仍然是内部服务器错误。

我也试过
$stmt->execute() or die("error msg");

但仍然是相同的错误,服务器错误日志中也没有任何内容。
我还尝试过将$ id显式转换为int,但没有帮助。

我该如何调试并找到错误?我似乎无法从脚本中获得正确的错误消息,而且我也不知道可能出了什么问题,因为我使用的其他准备好的Statemens运行良好。

编辑:好吧,我刚刚找到问题的根源,我正在尝试这样做
while($doStuff){
  method($stmt1, $stmt2)
}
method($stmt1, $stmt2){
  // handle $stmt1
  // stuff
  // handle $stmt2
}

根据本条不可能
http://www.ioncannon.net/programming/889/php-mysqli-and-multiple-prepared-statements/

我通过简单地更改来修复了错误
while($doingStuff){
  // Do Stuff
  $stmt->bind_param("is", $id, $username);
  $stmt->execute();
  // Do Stuff
}


while($doingStuff){
  // Do Stuff
  $stmt->bind_param("is", $id, $username);
  $stmt->execute();
  $stmt->store_result();
  // Do Stuff
}

在第一个陈述中。

但是我仍然想知道如何获取实际的错误而不是内部服务器错误,因为我使用共享主机,所以我无法更改php.ini

最佳答案

尝试在PHP配置上设置display_errorslog_errorserror_log伪指令,而不是从脚本中设置:php.ini或(如果允许并支持).htaccess。

关于php - PHP内部服务器错误,带有$ statement-> execute,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13418040/

相关文章:

javascript - 使用ajax上传图片和表单提交

c# - 如何跨不同的类返回多个变量

c# - WinForms C# 并非所有代码路径都返回一个值

python - 如何在按下 Enter 后立即将 Kivy 输入文本分配给变量?

javascript - 使用javascript获取行数

php - 登录错误并登录优化

php - array_push 用于关联数组

php - Laravel 全文搜索

javascript - Jquery不执行简单的条件

PHP/Mysqli 插入语句不写入数据库