- - PR -
MySQLのAUTO_INCREMENTで、予期しない値が登録されてしまいます。
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2008-11-15 20:49
はじめまして。
MySQL初心者です。 PHP5.0+MySQL5.0で、ウェブサイトの最新ニュースを自動更新するシステムを開発しています。 システムの特徴として、 ・トピック情報(ID、タイトル、本文、トピック欄の表示画像の絶対パス、トピック記事のURL、公開/非公開ステータス)をデータベースに登録 ・トピックの投稿日時を、「YYYY/MM/DD」の形式でデータベースに登録 ・トピック欄に表示させる画像をアップロードした際に、所定のテキストボックスにアップロード先ディレクトリの絶対パスを表示させ、トピック投稿時にデータベースに登録 以上の機能を実現したいと考えております。 トピックのIDの登録カラムに、AUTO_INCREMENTを設定し、トピック情報がデータベースに登録された際に自動でIDを振っているのですが、トピックが2件登録された状態でフォームから投稿を行うと、 ID | タイトル | 本文 | ---+--------+------+ 1 | タイトル1 | 本文1 | 2 | タイトル2 | 本文2 | 3 | タイトル3 | 本文3 | 4 | タイトル3 | 本文3 | と、同じトピック情報が重複して登録されてしまいます。 この登録の直後に、ブラウザの再読み込みを行うと、 ID | タイトル | 本文 | ---+--------+------+ 1 | タイトル1 | 本文1 | 2 | タイトル2 | 本文2 | 3 | タイトル3 | 本文3 | 4 | タイトル3 | 本文3 | 5 | タイトル3 | 本文3 | と、1件だけレコードが追加されます。 原因を調べた結果、 ID | タイトル | 本文 | ---+--------+------+ 1 | タイトル1 | 本文1 | 2 | タイトル2 | 本文2 | の、2件レコードが登録された状態から、フォームからの投稿を行うと、本来 AUTO_INCREMENT の値が 3 となるはずが、4 となった状態でレコードが登録され、その結果、重複したレコードが登録されてしまうことが分かっています。 フォームからの投稿の場合でも、IDが1件ずつ振られるようにしたいと考えています。 対処法について、皆様のご意見を頂ければ幸いです。 ご教授の程、よろしくお願いいたします。 |
|
投稿日時: 2008-12-08 13:12
既に解決しているとは思いますが。
K-OCEANさんがおっしゃっている現象はMySQLの誤動作とは考えにくいですね。 MySQLの問題か否かは、PHPから実行しているSQLをコマンドラインで実行してみれば解ると思います。 PHPの書方の問題で、同じ処理を2回行っているのではないかと思います。 環境の原因と考える前に、自分のミスであることを疑いましょう。 |
1