$query = "SELECT 1 FROM users WHERE username = :username";
$query_params = array(':username' => $_POST['username']);
try
{
$stmt = $db->prepare($query);
$result = $stmt->execute($query_params);
}
catch(PDOException $ex)
{
die("Failed to run query: " . $ex->getMessage());
}
$row = $stmt->fetch();
if($row)
{
die("This username is already in use");
}
これはすべて機能しますが、次のとおりです。
SELECT
クエリが単にorの場合、準備されたステートメントが本当に必要SELECT COUNT
ですか?
テーブルに操作がなければINSERT / UPDATE / DELETE
、SQLインジェクションやスパムの危険はないと思いますか?try/catch
データベースにアクセスするたびにステートメントが本当に必要ですか?