前提・実現したいこと
プログラミング初心者です。
ユーザー登録機能を実装するにあたって、新規登録しようとしているユーザー名がすでに存在している場合に、”そのユーザー名は既に使用されています”と表示したいと考えています。
いろいろ調べてやってみたところ、SELECT COUNT(*)FROM データベース名 WHERE を使い、すでに名前が存在している場合は1となり、していない場合は0になることを利用すればよいとわかりました。
しかし実行してみたところ、エラーが出てしまいます。
どこに問題があるのでしょうか?
完全な初心者のため、初心者でも分かるように説明していただけると有難いです。
宜しくお願いします。
発生している問題・エラーメッセージ
Warning: PDO::query(): SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '*) FROM userData WHERE name = 'test'' at line 1 in /〇〇.php on line 34 Fatal error: Uncaught Error: Call to a member function fetchAll() on bool in /〇〇.php:35 Stack trace: #0 {main} thrown in /〇〇.php on line 35
該当のソースコード
$user_select = "SELECT COUNT (*) FROM userData WHERE name = '$username' "; $stmt_sel = $pdo -> query($user_select); $res_sel = $stmt_sel -> fetchAll(); if($res_sel = 1){ $errorMessage = 'そのユーザー名は既に使用されています'; }if($res_sel = 0){ try { $sql = $pdo->prepare("INSERT INTO userData(name, password) VALUES (:name, :pass)"); $sql -> bindParam(':name', $username, PDO::PARAM_STR); $sql -> bindParam(':pass', $userpass, PDO::PARAM_STR); $sql -> execute(); $signUpMessage = '登録が完了しました。あなたの登録IDは '. $username. ' です。パスワードは '. $userpass. ' です。'; } catch (PDOException $e) { $errorMessage = 'データベースエラー'; } }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/07/17 16:51