我想知道此段代码有什么错误。我能够推断出该问题出现在“ $ stmt-> bind_param(“ ssssii”,$ id,$ username,$ password);“
这是错误: 警告:mysqli_stmt :: bind_param():类型定义字符串中的元素数量与C:\ Users ...中的绑定变量数量不匹配。
$SELECT = "SELECT username From login Where username = ? Limit 1";
$INSERT = "INSERT Into login (id, username, password) values(?, ?, ?)";
//Prepare statement
$stmt = $conn->prepare($SELECT);
$stmt->bind_param("s", $username);
$stmt->execute();
$stmt->bind_result($username);
$stmt->store_result();
$rnum = $stmt->num_rows;
if ($rnum==0) {
$stmt->close();
$stmt = $conn->prepare($INSERT);
$stmt->bind_param("ssssii", $id, $username, $password);
$stmt->execute();
echo "New record inserted sucessfully";
} else {
echo "Someone already registered using this username";
}
$stmt->close();
$conn->close();
我将不胜感激。
非常感谢您
答案 0 :(得分:-1)
在$stmt->bind_param("ssssii", $id, $username, $password);
语句中,您给出/声明6种参数类型,但仅指定3个要绑定的参数。
应该是$stmt->bind_param("iss", $id, $username, $password);
,表示您的ID是一个数字。
编辑:正如icecub在上面的评论中已经提到的