phpでPDOを使用してMySQLから番号とパスワードが合致するメッセージを削除することを目的に
以下のコードを書きました。
【コード】
php
1//----------------【DELETEで指定した番号のメッセージを削除】-------------------- 2 if(isset($_POST["btn_delete"])){ 3 $deleteNo=$_POST['deleteNo']; 4 $delete_pass=$_POST['pass']; 5 $sql="SELECT * FROM $tb_name WHERE number=:number, password=:password"; 6 $stmt=$pdo->prepare($sql); 7 $stmt->bindValue(':number',$deleteNo,PDO::PARAM_INT); 8 $stmt->bindValue(':password',$delete_pass,PDO::PARAM_STR); 9 $flag=$stmt->execute(); 10 } 11 12 if($flag){ 13 $sql="DELETE FROM $tb_name WHERE $deleteNo"; 14 $stmt=$pdo->prepare($sql); 15 $stmt->execute(); 16 echo "指定されたメッセージを削除しました"; 17 }else{ 18 echo "パスワードまたは削除番号が間違っています"; 19 }
コードの意図としては、最初の1f文でdeleteボタンが押されると、SELECT文を使って削除したいメッセージの番号とパスワードが一致するデータを選ぶようにしました。両方合致するものが選べた場合次のif文の中でDELETE文を使って合致するデータを削除したいです。また、合致するデータが選べなかった場合は"パスワードまたは削除番号が間違っています"と表示させたいです。
このコードを実行すると以下のエラー文がでます。
【エラー】
Notice: Undefined variable: flag in /home/co-19-208.99sv-coco.com/public_html/kadai_2.php/kadai_2_advanced/kadai_2_advanced.php on line 182 パスワードまたは削除番号が間違っています
該当する行にはこのコードがあります
php
1if($flag){
SELECTがうまくいったかどうかで場合分けしたくて$flagという形でif文に渡す方法は誤っているのでしょうか。ちなみに参考にさせて頂きたサイトはこちらです。
【参考サイト】
データの更新(UPDATE)
同様に$flagという形でSQL文をif文にわたしています。
回答1件
あなたの回答
tips
プレビュー