Sorry, but I can't reproduce your error.
I have the following script:
<?php
for($i = 1; $i < 1500000; $i++) {
set_time_limit (20);
$arr_data["field1"] = "$i";
$arr_data["field2"] = "$i";
$arr_data["field3"] = "$i";
$arr_data["field4"] = "$i";
$arr_data["field5"] = "$i";
$arr_data["field6"] = "$i";
$arr_data["field7"] = "$i";
$arr_data["field8"] = "$i";
$arr_data["field9"] = "$i";
$query = "
INSERT INTO
table
(
`field1`,
`field2`,
`field3`,
`field4`,
`field5`,
`field6`,
`field7`,
`field8`,
`field9`,
`field10`
)
VALUES
(
'{$arr_data["field1"]}',
'{$arr_data["field2"]}',
'{$arr_data["field3"]}',
'{$arr_data["field4"]}',
'{$arr_data["field5"]}',
'{$arr_data["field6"]}',
'{$arr_data["field7"]}',
'{$arr_data["field8"]}',
'{$arr_data["field9"]}',
now()
)
;";
$obj_db->obj_db->Execute("SET AUTOCOMMIT = 0");
$obj_db->obj_db->BeginTrans();
$db_query = $obj_db->obj_db->Execute($query);
$obj_db->obj_db->CommitTrans($db_query);
}
?>
The real script with which I tested looks a little bit different. It writes the data into 3 tables.
The DB is mysql-max 3.23.56, table-type is InnoDB.
$obj_db is an DB Class depending on AdoDB.
$obj_db->obj_db is the DB connection ressource.
The DB fields "field1", "field2" and "field3" are unique.
"field0" is auto_incrementing primary key and not specified in the query.
PHP version is 4.3.x (4.3.0 I think, but not sure).
Script called from MS Internet Explorer, Server is in the LAN with a 100MBit connection.
You might try to reproduce your error with a simple script like mine above.
If the error will not appear again, its an false in your real script.
Bye
Thorsten
PS: (The sript runs for 30 minutes now, no error, not stopping...
It insertet 750.000 rows (in 3 tables) with 110MB of data)