我有这段代码来更新我的记录,并检查相应的input
上是否有任何值。但这甚至没有更新我的记录,并且当我单击提交时出现此错误:
致命错误:未捕获的PDOException:SQLSTATE [42000]:语法错误或访问冲突:1064您的SQL语法有错误;请参阅附录A。检查与您的MariaDB服务器版本相对应的手册以获取在'?附近使用的正确语法。 =':title',? =':keywords'WHERE title =?'
if(isset($_POST["updateBTN"])){
$insert_data = array(
'keywords' => $_POST['keywords'],
'img' => $_POST['img'],
'widht' => $_POST['widht'],
'status' => $_POST['status'],
'name' => $_POST['name'],
'height' => $_POST['height']
);
$sets="";
foreach ($insert_data as $column => $value) {
if ($value!=""){
$sets .= $column." = '".$column."', ";
}
}
$sets = rtrim($sets, ', ');
$query = "UPDATE table SET $sets WHERE title = :title";
$stmt = $conn->prepare($query);
$stmt->execute($insert_data);
}
html:
<form method="post">
<div>
<input type="text" name="title">
<span data-placeholder="Title"></span>
</div>
<div>
<input type="text" name="keywords">
<span data-placeholder="keywords"></span>
</div>
<div>
<input type="text" name="img">
<span data-placeholder="img"></span>
</div>
.
.
.
<button type="submit" name="updateBTN">Send</button>
</form>
答案 0 :(得分:0)
print_r($sets);
向您显示什么?$column
值理想情况下应放在反引号中$_POST
数据!?
字符串。 最后但并非最不重要的: