現在「気づけばプロ並みPHP」という教材で勉強していまして、どうしても進めない箇所がありご質問させて頂きました。
「ログインチェック画面を作ろう(p144)」という箇所で、コードと暗号化したパスワードをWHEREで絞り込み条件にして、データベースから読み出すことが出来ずに困っています。
参考書のコードでは以下のようになっています。(一部抜粋)
php
1$sql='SELECT name FROM mst_staff WHERE code=? AND password=?'; 2$stmt=$dbh->prepare($sql); 3$data[]=$staff_code; 4$data[]=$staff_pass; 5$stmt->execute($data);
しかし、これではログインが出来るようになりません。
そこで、このようなSELECT構文でデータを読み出すことが出来るのか疑問に思い、
phpMyAdminのSQLにて以下のようにクエリを実行してみました。
SQL
1SELECT name FROM mst_staff WHERE code=1 AND password=123
するとエラーが出てしまいます。
今度は、WHERE条件をcodeのみにして以下のようにクエリを実行してみました。
SQL
1SELECT name FROM mst_staff WHERE code=1
すると目的のnameを読み出すことが出来ました。
今度は、WHERE条件をpasswordのみにして以下のようにクエリを実行してみました。
SQL
1SELECT name FROM mst_staff WHERE password=123
するとエラーが出てしまいます。
従ってWHERE条件をpasswordで読み出すことが出来ないがために、ログインが出来ないのではないかと考えています。
どのようにしたらコードと暗号化したパスワードをWHEREで絞り込み条件にして、データベースから読み出すことが出来るのでしょうか。
考えられる原因を教えて頂けると助かります。
プログラミング独学の初心者で質問をすることも初めてなので、うまく説明できているのか不安ではありますが、何卒よろしくお願い致します。
回答2件
あなたの回答
tips
プレビュー