这是我的PHP:
$db = new mysqli($db_host, $db_user, $db_pass, $db_database);
if (mysqli_connect_errno()) {
echo "Could not connect to database.";
}
// On first connect to database, create a user to hold data for users not logged in
$stmt = $db->prepare("SELECT id FROM users WHERE id = ?");
$stmt->bind_param("i" , 1);
$stmt->execute();
if ($stmt->num_rows == 0) {
$stmt = $db->prepare("INSERT INTO users (id, username, email, password) VALUES (?, ?, ?, ?");
$stmt->bind_param("isss", 1, "anonymous", "anonymous", password_hash("noidentity", PASSWORD_BCRYPT));
$stmt->execute();
}
但是当它运行时,我得到这个错误:
致命错误:无法通过引用传递参数 2
它指向我拥有的那条线$stmt->bind_param("i" , 1);
我不确定我做错了什么。
另外,如果我想将连续字段的值设置为比当前值高 1,我该如何使用准备好的语句来做到这一点?
例如:UPDATE users SET wins = wins + 1 WHERE id = ?
将 wins 设置为某个值是一个值,所以我认为它应该与准备好的语句一起使用,但我是否认为“wins + 1”是一个字符串,并将其包含在准备好的语句中?