phpのmysqliを用いてVARCHAR,INT,BLOB,DOUBLEのINSERTを行っているのですが、時々、INT型の特定の列だけ値が0としてINSERTされてしまいます。
他の(INT型も含む)すべての列の値に異常はなく、また異常の出ている列の値が正しいときのみINSERT、といったif条件の中にクエリを入れているのに0がINSERTされているため、おそらくmysqli周りに異常があるのかと思いますが、うまくいっている時もあるだけに、正直原因の見当がつきません。
どなたか原因にお心当たりのある方はおられませんでしょうか?
追記
php
1$stmt = $mysqli->prepare("INSERT INTO postings (`latitude`,`longitude`,`id1`,`id2`,`id3`,`id4`,`id5`,`datetime`,`image`,`comment`) VALUES (?,?,?,?,?,?,?,cast(? as datetime),?,?)"); 2 3$null = NULL; 4$stmt->bind_param("ddiiiiisbs", $latitude,$longitude,$id1,$id2,$id3,$id4,$id5,$datetime,$null,$comment); 5$stmt->send_long_data(8, $image_binary); 6$stmt->execute(); 7$stmt->close(); 8
上記のように、prepareを用いてINSERTしています。
今回の不具合としては、id1およびid2が0としてINSERTされてしまう場合がある、といった状態です。