これが私の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」を文字列と見なし、それをプリペアドステートメントに含めますか?