我正在尝试在我的网站中进行就地编辑方式.现在我设置了我需要的所有东西.当用户点击提交后,它会发送id
的的div
元素(什么样的内容)和新的数值进行更新.
这是我的代码:
if($pedit = $mysqli->prepare("UPDATE `accounts` SET ? = ? WHERE `id`= ? ")){
$pedit->bind_param("sss", $id, $value, $_SESSION["user_id"]);
$pedit->execute();
$pedit->free_result();
$pedit->close();
}
Run Code Online (Sandbox Code Playgroud)
我不知道为什么它不更新信息.
$id
=更改的行:description,fullname,email etc.
$value
=有关的新信息$id
.用户可以更新其个人资料信息.
代码不会向我显示任何类型的错误,但仍然不会更新.
您不能在预准备语句中将列名指定为参数.在准备之前,您必须将列名替换为语句.不要忘记将可编辑的列名列入白名单,以确保不会执行不需要的SQL.
<?php
$accounts_editable_cols = array(
'name'=>true, 'street'=>true, 'city'=>true,
'region'=>true, 'postal'=>true, 'phone'=>true
);
// prevent SQL injection by whitelisting column names
if (!array_key_exists($id, $accounts_editable_cols)) return false;
$pedit = $mysqli->prepare("UPDATE `accounts` SET $id = ? WHERE `id`= ? ")
if ($pedit) {
$pedit->bind_param("ss", $value, $_SESSION["user_id"]);
$pedit->execute();
$pedit->free_result();
$pedit->close();
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
46 次 |
最近记录: |