質問: ### 前提・実現したいこと XAMPPとMySQLを使ってショッピングサイトを作っています。 PHPでDBにアクセスし、try~catchとUPDATEのSQLを実行し既存のデータを修正したいです。 エラーメッセージは出てきていません ### 該当のソースコード ``` ろくまる農園 setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION); //すでにあるレコードデータを上書き修正するSQL文 $sql='UPDATE mst_staff SET name=?,password=? WHERE code=?'; $stmt=$dbh->prepare($sql); $data[]=$staff_code; $data[]=$staff_name; $data[]=$staff_pass; $stmt->execute($data); var_dump($data); //DBとのアクセスを切断する $dbh=null; //データベースがダウンしているときに動くプログラム }catch(Exception $e){ print "ただいま障害によりサーバーに接続できません。大変ご迷惑をおかけしています。"; exit(); } ?> 修正しました 戻る ``` ### 試したこと if($data){ echo("できている"); }else{ echo("できてない"); } ⇒できている ・前ページからデータの取得はできている ⇒var_dump($data);で確認 ・DBのデータが修正されておらず、解決方法が分からない。 ⇒MySQLの中身をphpAdminブラウザで確認
回答: name=?,password=? WHERE code=? この並びに対して、配列の順番が違うんじゃないでしょうか。 $data[]=$staff_code; $data[]=$staff_name; $data[]=$staff_pass; こう? $data[]=$staff_name; $data[]=$staff_pass; $data[]=$staff_code;