我是刚准备好的陈述的新手。如果我插入虚拟数据,并且没有绑定整数($ id),则SQL查询工作正常。
我在哪里错了?
sql = "UPDATE staff_type SET s_type=?, description=? WHERE s_type_id=?;";
$stmt = mysqli_stmt_init($conn);
mysqli_stmt_prepare($stmt, $sql));
mysqli_stmt_bind_param($stmt, "ssi", $type, $desc, $id);
mysqli_stmt_execute($stmt);
答案 0 :(得分:1)
在绑定参数之前,您必须准备一条带有参数的SQL语句。
$sql = "UPDATE staff_type SET s_type=?, description=? WHERE s_type_id=?;";
$stmt = $conn->prepare($sql);
$stmt->bind_param("ssi", $type, $desc, $id);
$stmt->execute();
答案 1 :(得分:1)
我发现了导致整数参数未绑定的错误。我不知道禁用的输入字段无法发布数据,因此我找到了一种将“ disabled”属性替换为“ readonly”的解决方案。
答案 2 :(得分:0)
您必须先准备声明
**Procedural style**
$stmt = mysqli_prepare($conn, "UPDATE staff_type SET s_type=?, description=? WHERE s_type_id=?");
mysqli_stmt_bind_param($stmt, "ssi", $type, $desc, $id);
mysqli_stmt_execute($stmt);
答案 3 :(得分:0)
尝试一下
$sql= $con->prepare("update staff_type set s_type=?, description=? WHERE s_type_id = ?");
if ($result){
$sql->bind_param('ssi', $s_type, $desc, $s_type_id );
$sql->execute();
}
旁注:s代表字符串,而i代表整数
希望这对您有帮助