我正在写一篇准备好的陈述中的错误......
Number of elements in type definition string doesn't match number of bind variables on line 33. Create Topic Insert bind_param() failed:
我唯一能想到的是因为NOW()
字段,但我认为不需要为此设置变量?
我在这方面是否有明显遗漏或可能导致此错误的原因?
//Prepared INSERT stmt for the forum topic
$stmt = $con->prepare("INSERT INTO forum_topics (`category_id`, `topic_title`, `topic_creator`, `topic_date`, `topic_reply_date`)
VALUES(?, ?, ?, NOW(), NOW())");
if ( !$stmt || $con->error ) {
die('Create Topic Insert prepare() failed: ' . htmlspecialchars($con->error));
}
if(!$stmt->bind_param('sssii', $cid, $title, $creator)) {
die('Create Topic Insert bind_param() failed: ' . htmlspecialchars($stmt->error));
}
if(!$stmt->execute()) {
die('Create Topic Insert execute() failed: ' . htmlspecialchars($stmt->error));
}
答案 0 :(得分:0)
mysqli_stmt :: bind_param - mysqli_stmt_bind_param - 将变量绑定到预准备语句作为参数
所以在你的bind_param中,你需要插入5个参数。
答案 1 :(得分:0)
我解决了这个问题。我试图绑定NOW()
字段。我将代码行更改为..
if(!$stmt->bind_param('sssii', $cid, $title, $creator)) {
现在它完美无缺。