为什么mysqli执行预处理语句不能保存?

时间:2015-02-04 17:05:58

标签: php mysqli prepared-statement

我刚学会在mysqli& amp; PHP。这是相关代码的片段。

$stmt = $mysqli->prepare ("UPDATE courses set id=?, title=?, description=?, videourl=?, article=?, colcount=?, questiondisplayed=?, onfield=? WHERE id = ?");
if ($stmt == false) { die ('prepare() failed: ' . htmlspecialchars($mysqli->error)); }
$res = $stmt->bind_param("sssssiiis", $id, $title, $description2, $videourl, $article2, $colcount, $questiondisplayed, $onfield, $oldid);
if ($res == false) { die ('bind_param() failed: ' . htmlspecialchars($mysqli->error)); }
$res = $stmt->execute();
if ($res == false) die ('execute() failed: ' . htmlspecialchars($mysqli->error));

问题是,即使这些代码成功运行(die函数永远不会被调用),数据库也根本不会更新。但是如果我没有使用预准备语句(手动构造SQL查询字符串),它会成功更新。我想从使用手动构造的SQL查询字符串转换为准备好的语句。但我被困在这个领域。顺便说一句,绑定参数中提供的变量已经在这些代码运行之前设置。我运行了print_r ($_POST);,它显示我的POST值包含正确的数据。哪里有问题?感谢。

0 个答案:

没有答案