MySQLi准备的语句不绑定整数

时间:2018-08-20 14:29:17

标签: php mysqli

我是刚准备好的陈述的新手。如果我插入虚拟数据,并且没有绑定整数($ 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);

4 个答案:

答案 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);

检查http://php.net/manual/en/mysqli-stmt.bind-param.php

答案 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代表整数

希望这对您有帮助