みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

mysqli_insert_idについて

古いサーバーから新しいサーバーに入れ替え、
PHPが5.1から5.6に変わったため、PHPのファイルを修正しています。
だいたい修正ができたのですが、どうしても「mysql_insert_id」が修正できません。

修正したソースは以下になります。

********************************

$sql = "INSERT INTO img_k (img_name,img_caption,up_datetime) VALUES('".$in_img."','".$in_img_text."',now())";
mysqli_query(connect(), $sql) or die(mysql_error()."<br>$sql");
$id = mysqli_insert_id(connect());

*********************************

$idにINSERTした最新のIDを取得したいのですが、結果は「0」になります。
IDはmysqlでauto_incrementに設定してます。
connect()は別ファイルでデータベースの接続してます。

これでIDが取得できず先に進めない状態です。
あと「オブジェクト指向型」ではなく「手続き型」でお願いします。
どうかよろしくお願いします。

投稿日時 - 2016-05-16 17:57:33

QNo.9173435

すぐに回答ほしいです

質問者が選んだベストアンサー

> connect()は別ファイルでデータベースの接続してます。
connect() の中身を憶測して書きますが、
3行目の connect() と、4行目の connect() で、それぞれで 新しく mysqli_connect() しているのであれば、
別のリンクとして扱われませんか?

3行目の connec() で作成された MySQL リンク ID に対して、
mysqli_insert_id() したらどうでしょうか?

例えば、

*********************************

$sql = "INSERT INTO img_k (img_name,img_caption,up_datetime) VALUES('".$in_img."','".$in_img_text."',now())";
$link= connect();
mysqli_query($link, $sql) or die(mysql_error()."<br>$sql");
$id = mysqli_insert_id($link);

投稿日時 - 2016-05-17 14:49:18

お礼

ありがとうございます。
できました。
何が間違っているのかさっぱり分からなかったのですが、別リンクと判断されていたんですね。
本当に助かりました。

投稿日時 - 2016-05-17 18:31:59

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問