MSSQL Server 2008 で Windows Server を使用しており、別の Windows Server で WAMP への ODBC 接続を使用しています。PHP を使用してデータベース クエリを実行し、INSERT クエリを実行すると、2 つの同一の行が取得されます (それらを区切る唯一のものとして一意の識別子があります)。二重投稿ではないことを何度も確認したので、コードを 2 回実行するか、2 回送信する必要があります。問題は PHP 側にあるわけではありません。
たとえば、次のコードを実行します。
$sql = "INSERT INTO mytable(aboutPerson, fromPerson, comment)
VALUES(1,5, 'hello')";
//.. create connection to db
odbc_exec($sql);
//.. close connection to db
それから、テーブルに2つの同一の行を取得します。これは、いくつかのテーブルで発生します。
なぜこれが発生し、どうすればそれを防ぐことができますか? ODBC を使用して WAMP を Microsoft SQL Server に接続する際の既知のバグですか?
ところで、システムを切り替えるオプションはありません。
どんな助けでも大歓迎です、ありがとう!
編集-
リクエストによる実際の例。
$SQL = "INSERT INTO billboard (toPersonId, toGroupClass, toOfficeId, fromOfficeId,
fromType, fromId, header, msg, aboutPersonId, created, startMessageId,
fromPersonId, status, emailNote, smsNote)
VALUES (1, 0, 1, 1,
2, 1, 'cccccccccccccc', 'cccccccccccccccc', '', GETDATE(), 0,
1, 0, 0, 0)";
$resource = odbc_connect(database server url, username, password);
$statement = odbc_exec($SQL, $resource);
return odbc_free_result($statement);
このコードを実行すると、テーブルに 1 行だけ挿入されるはずです。代わりに、これを2つの同一の行に取得します(主キーでありIDである最初の列を除く)
111 1 0 1 1 2 1 cccccccccccccc cccccccccccccccc 0 2012-10-10 12:56:27.773 0 1 0 0 0
110 1 0 1 1 2 1 cccccccccccccc cccccccccccccccc 0 2012-10-10 12:56:27.773 0 1 0 0 0