質問: ### 前提・実現したいこと updateを複数行に対して行うphpプログラムを製作しています。 しかし下記コードではどうしても動きません。 基本的な質問で申し訳ないのですがご回答よろしくお願い致します ### 発生している問題・エラーメッセージ ``` エラーは出ておりません。 ``` ### 該当のソースコード ``` session_start(); $pdo=new PDO('mysql:host=localhost;dbname=xxx;charset=utf8', 'root', ''); $example_id=$_REQUEST['example_id']; $example_id=$_REQUEST['aaa']; $example_id=$_REQUEST['bbb']; $example_id=$_REQUEST['ccc']; $example_id=$_REQUEST['ddd']; $sql=$pdo->prepare('update example set aaa=?,bbb=?,ccc=?,ddd=? where example={$example_id}'); $sql->execute($aaa, $bbb, $ccc, $ddd]); ``` ### 試したこと updateを複数行で行うソースの検索など ### 補足情報(FW/ツールのバージョンなど) PHP のバージョン: 7.1.13
回答: `$sql=$pdo->prepare('update example set aaa=?,bbb=?,ccc=?,ddd=? where example={$example_id}');` これ、「example={$example_id}」が変数展開されないまま実行されてますよね。 いっそ、 `$sql=$pdo->prepare('update example set aaa=?,bbb=?,ccc=?,ddd=? where example_id=?');` にしちゃって、execute()するときに与えてみてはいかがでしょうか。 `$sql->execute($aaa, $bbb, $ccc, $ddd, $example_id);` それと ``` $example_id=$_REQUEST['example_id']; $example_id=$_REQUEST['aaa']; $example_id=$_REQUEST['bbb']; $example_id=$_REQUEST['ccc']; $example_id=$_REQUEST['ddd']; ``` 変数名、直そうね。