我有一个像这样执行的复杂查询:
if ($stmt = $dbi->prepare($pt_query)) {
$stmt->bind_param('ssssssssi', $snome,$scognome,$ssocieta,$svia,$slocalita,$sprovincia,$scap,$stelefono,$sfax,$uid);
$stmt->execute();
echo $dbi->error;
$stmt->close();
} else {
printf("Error -> %s\n", $dbi->error);
}
这件事没有任何错误地失败了,它只是没有更新数据库。由于在此之前要处理大量数据,我想知道是否有任何方法可以显示 mysqli 正在执行的实际查询,以便了解问题出在哪里。
谢谢。
最佳答案
如果您的语句失败,您应该检查 $stmt->error
(与 $dbi->error
相对)。至于获取查询的实际文本:这是不可能的。使用准备好的语句时,该库使用一种特殊协议(protocol),该协议(protocol)不会为每个 ->execute()
调用生成实际的查询字符串。
关于php - 有什么方法可以打印 mysqli->execute() 进行的实际查询吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2691707/