私のブラウザでは26行目にエラーが表示されています。IF NOT EXISTSを使用しようとしているときに、「Unrecognized SQL statement」とは何を意味していますか?
<?php
$servername = "localhost";
$username = "root";
$password = "";
$database = "tut";
$conn = mysqli_connect($servername, $username, $password, $database);
if (!$conn) {
die("Database connection failed: ".mysqli_connect_error());
}
if (isset($_POST['register']))
{
$user = $_POST['username'];
$pass = $_POST['password'];
$pass2=$_POST['password1'];
if(empty($username)||empty ($password)||empty($password1)){
echo "Oops! Can't leave any field blank";
}
elseif($pass!=$pass2){
echo "Passwords don't match";
}
else{
$phash = sha1(sha1($pass."salt")."salt");
$sql=IF NOT EXISTS (SELECT * FROM users WHERE username = '$user')
INSERT INTO users (id, username, password) VALUES ('', '$user', '$phash')
ELSE
RAISERROR 'Username exists, please select a different one';
$result = mysqli_query($conn, $sql);
}
}
?>
これは、IF NOT EXISTS文を書き込む正しい方法ではありませんか?また、私はこれをXAMPPで直接実行しようとすると、認識できないSQL文のエラーが発生します。
IFの中にTHENがありません – Haris
@ maytham-answerからTHEN @ハリス – lmgguy
+1が必要ではありません。 P.S.コードがSQLインジェクションに対して脆弱であるため、パラメータ化されたクエリを使用する方法を学んでください。 –