こんにちは、私は同じ種類の問題を抱えていますが、なぜうまくいかないのか混乱しています。致命的なエラー:booleanのメンバー関数close()を呼び出す
Fatal error: Call to a member function close() on boolean in includes\register_check.php on line 45
$ stmt3-> close()です。
コード
} else {
if (strlen($_POST['username2']) < 2 || strlen($_POST['username2']) > 20) {
echo "<h3>Username must be between 2 and 20 characters!</h3>";
} else {
$stmt = yasDB_select("SELECT `id` FROM `user` WHERE `username` LIKE '$username'");
$stmt2 = yasDB_select("SELECT `id` FROM `user` WHERE `email` LIKE '$email'");
if ($stmt->num_rows == 0 && $stmt2->num_rows == 0) {
$stmt3 = yasDB_insert("INSERT INTO `user` (`username`, `password`, `repeatpassword`, `name`, `email`, `website`, `plays`, `points`, `date`) VALUES ('$username','$password','$repeatpassword','$name','$email','$website','$plays','$points', '$date')", false);
if ($stmt3) {
echo "<h3>Registered! You may now log in.</h3>";
} else {
$stmt3->close();
echo "<h3>Registration failed!</h3>";
}
} else {
$stmt->close();
echo "<h3>Sorry, username or email exists. Please try again.</h3>";
}
}
}
これは、 '$ stmt3'がnullであるためと思われます。他の人からそれを呼び出すと、ifチェックの値は偽ではありません。おそらく 'if'の結果にその行が必要で、その検査でelseの結果はありません。 – Carl
Sryは$ stmt3-> close()を意味します。エラーを出す。 – funkstar33
あなたが物事を修正している間は、http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-phpを確認することもできます。 – apokryfos