□やりたいこと
sql文でinsertしたデータのIDを取得したい。(IDはAUTO_INCREMENTで設定されている。)
□起こっている問題
IDが正しく返り値として返ってこず、NULLとなっている。
以下ソースコード
try { $sql = 'INSERT INTO drink_master (drink_name , price , img , status , create_datetime) VALUES(?,?,?,?,NOW())'; $stmt = $dbh->prepare($sql); $stmt->bindValue(1, $name, PDO::PARAM_STR); $stmt->bindValue(2, $price, PDO::PARAM_STR); $stmt->bindValue(3, $new_img_filename , PDO::PARAM_STR); $stmt->bindValue(4, $status , PDO::PARAM_STR); $stmt->execute(); var_dump(mysqli_insert_id()); //ここでNULLと表示される。74行目 } catch (PDOException $e) { $errors[] = '登録できませんでした。理由:'.$e->getMessage(); }
DBへのINSERTはできており、IDもAUTO_INCREMENTに則って振られている。
しかしvar_dumpのところでNULLと表示される。
以下エラー文
*****
Warning: mysqli_insert_id() expects exactly 1 parameter, 0 given in /home/codecamp30768/htdocs/php/21/tool.php on line 74
NULL
*****
□試してみたこと
・mysql_insert_id($sql)としてみたが結果変わらず。
・last_insert_id()をしてみたが、NULLの表記も消えて、IDは表示されなかった。
・last_insert_id($sql)をしてみても1つ上と同じ状態。
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/05/12 08:19
退会済みユーザー
2020/05/12 08:22 編集
2020/05/12 09:46