После изучения кода и поиска по всему я понял, что Magento использует модель транзакций для соединений с базой данных. В результате у Imre L
была правильная идея, но неправильный код.
В качестве эксперимента я изменил этот код:
$sql = "insert into {$tableName} values ('', '$customerId', '$acPI', '$acPI', '3')";
$writeconnection->query($sql);
$sql = "insert into {$tableName} (magCID, anCID, anOID, anObjectType) values ('$customerId', '$acPI', '$acAI', '2')";
$writeconnection->query($sql);
$sql = "insert into {$tableName} (magCID, anCID, anOID, anObjectType) values ('$customerId', '$acPI', '$acPPI', '1')";
$writeconnection->query($sql);
к этому:
$sql = "insert into {$tableName} values ('', '$customerId', '$acPI', '$acPI', '3'); commit;";
$writeconnection->query($sql);
$sql = "insert into {$tableName} (magCID, anCID, anOID, anObjectType) values ('$customerId', '$acPI', '$acAI', '2'); commit;";
$writeconnection->query($sql);
$sql = "insert into {$tableName} (magCID, anCID, anOID, anObjectType) values ('$customerId', '$acPI', '$acPPI', '1'); commit;";
$writeconnection->query($sql);
Как ни удивительно, это сработало. Новые значения появились в базе данных. (Я не осознавал, что MySQL поддерживает транзакции)
Где-то в моем новом коде я запрещал запуск оператора commit, и поэтому значения не сохранялись в базе данных. Я буду охотиться за этим, пока иду, но пока commit;
придется остаться.
Спасибо за помощь в работе над этим.