Commitは命じゃ!!

Filed under MySQL, php
Tagged as ,

PhpでMysql(innodb)を利用している場合に、
すごくはずかしい失態をおかしたので、
繰り返さないように、恥を公開しておこう。

autoCommit(false);

としてたわけですよ。
で、id を auto_increment するようなテーブルが複数あり、
それらを、insertとかしてたわけですよ。

でも、なぜかDBが更新されないわけですよ。

mysql_insert_id();

の関数を利用して直前のSQLのauto_incrementのIDを引っ張るわけですが、
これが、ちゃんとに取得できるわけですよ。
id が 100とかなってても、100のIDのレコードがテーブルに存在しないわけです。

もう全然わからないと思っていたところ、

commit()

部分を気持ちよく、綺麗さっぱりコメントアウトしてたわけです。
そりゃー 動くわけないですがな。

中途半端にまともなIDなんて返してくれちゃうから、
余計あせっちまいましたよ。

と、いったところで、自分のinnodbの扱いの認識不足と、
注意力不足が招いた結果ですけどね。。

Post a Comment

Your email is never published nor shared. Required fields are marked *

*
*