【发布时间】:2020-07-18 16:16:22
【问题描述】:
我正在尝试将此 sql 查询转换为准备好的语句:
$query = "INSERT INTO contact VALUES (default,'".$firstName."', '".$lastName."');";
其中 default 是一个自动递增的 id。
这是我目前准备好的陈述:
if (!($stmt = $mysqli->prepare("INSERT INTO contact (id, firstName, lastName) VALUES (DEFAULT, ?, ?)"))) {
echo "Prepare failed: (" . $mysqli->errno . ") " . $mysqli->error;
}
if (!$stmt->bind_param("s", $_POST['firstName'], $_POST['lastName'])) {
echo "Binding parameters failed: (" . $stmt->errno . ") " . $stmt->error;
}
if (!$stmt->execute()) {
echo "Execute failed: (" . $stmt->errno . ") " . $stmt->error;
}
当我进入我的 PHP 表单时,没有执行任何 echo 语句,所以我假设有“没有”错误。但是当我检查我的数据库时,没有新的插入;插入方法不起作用。什么都没有添加。我想知道我的 bind_param 函数是否有错误?
【问题讨论】:
-
您的意思是将要绑定的数据类型指定为
"s",然后绑定2个值。也许"ss"? -
成功了!非常感谢!
标签: php mysql mysqli prepared-statement