我正在尝试制作一个mysqli预处理语句,并且由于某种原因,至少字符串被转换为0(零)。
例:
表
id - int, PK
name - varchar(45)
代码
if ($stmt = $mysqli->prepare("INSERT INTO test (name) VALUES(?)")){
$stmt->bind_param('s',$name);
$name="Test1";
$stmt->execute();
} else {
echo "prepare failed";
}
如果我运行它,表中新插入的行的名称将为0。我究竟做错了什么?我不能使用PDO,因为正在进行的服务器没有它。
答案 0 :(得分:-1)
您的代码上有一些错误的内容:
<强>代码强>
if ($stmt = $mysqli->prepare("INSERT INTO test (name) VALUES(:name)")){
# defining $name
$name = "Test1";
# putting $name to the param :name
$stmt->bindParam(":name", $name, PDO::PARAM_STR);
# executing the prepared query.
$stmt->execute();
} else {
echo "prepare failed";
}