我正在尝试通过 PHP 中的准备好的语句插入一些数据。我有以下代码,但没有为我插入。我也已经设置了以下代码
ini_set('display_errors', 1);
error_reporting(~0);
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
try {
$sqlInsert = "INSERT INTO deck_cards (deckid, cardid, qty) VALUES (?,?,?)";
$stmtInsert = $conn->prepare($sqlInsert);
if ($stmtInsert)
{
$stmtInsert->bind_param("sss", $deckid, $cardid, $cardcount) or trigger_error($stmtInsert->error, E_USER_ERROR);
$stmtInsert->execute() or trigger_error($stmtInsert->error, E_USER_ERROR);
echo "Check if this ran";
}
else {
echo "Error: " . $sql . "<br>" . $conn->error;
$conn->close();
}
$stmtInsert->close();
}
catch (Exception $ex)
{
echo 'Exception occurred '.$ex->getTraceAsString();
}
执行此操作时,我确实看到文本“检查此操作是否已运行”,但没有其他消息。数据未插入数据库。此外,我回显了 SQL 字符串和变量,并直接针对 MySQL 运行它,并且插入正常。不确定上面我非常简单的代码中发生了什么。
此外,在我的应用程序内的其他页面中插入操作正常,但此页面由于某种原因无法正常工作。
我知道这对我的错误报告来说有点矫枉过正,但我尝试了所有我能想到的方法来看看某个地方是否有错误,但这对我来说是一个令人头疼的问题。感谢您的帮助!
如果您的查询看似不起作用,可能是由以下原因引起的:
因此你的代码应该是这样的(假设前三行应该移动到你要包含在此处的一些引导文件中)
echo "Start\n"; // debugging statement, remove after resolving the issue
$sqlInsert = "INSERT INTO deck_cards (deckid, cardid, qty) VALUES (?,?,?)";
$stmtInsert = $conn->prepare($sqlInsert);
$stmtInsert->bind_param("sss", $deckid, $cardid, $cardcount);
echo "INSERT done\n"; // debugging statement, remove after resolving the issue
如果查询实际执行,并且没有错误,则表示查询成功。如果您仍然无法观察到想要的结果: