Я сделал довольно простой скрипт для получения записей из базы данных разработки, и для каждой выбранной записи вставляю их в производство и получаю вновь созданный идентификатор.
Это «Работает», но только для одной записи. Когда я запускаю этот сценарий, он успешно подключается, выбирает, вставляет и печатает идентификатор вновь вставленной записи, но затем сценарий просто останавливается, и когда я проверяю базу данных, там только одна новая запись, хотя в источнике более 500 записей table
Это просто потому, что я использую while вместо foreach? Я думаю, что я делал нечто подобное раньше с некоторым l oop, но это просто умирает от меня после одной успешной попытки.
if($DB2connDEV && $DB2connPROD){
$getDevelopment = "
SELECT * FROM TEST_TABLE; // there are over 500 records in here
";
$stmt = odbc_exec($DB2connDEV, $getDevelopment);
while($gettingDevelopment = odbc_fetch_array($stmt)){
$originalID = $gettingDevelopment['identity'];
$insertTable = "INSERT INTO testing_insert_php (name) VALUES ($originalID)";
$getIdentity = "SELECT IDENTITY_VAL_LOCAL() AS LASTID FROM SYSIBM.SYSDUMMY1";
$stmt = odbc_exec($DB2connPROD, $insertTable);
$stmt = odbc_exec($DB2connPROD, $getIdentity);
$row = odbc_fetch_array($stmt);
$ret = $row['LASTID'];
if($ret) {
echo "Last Insert ID is : " . $ret . "\n";
} else {
echo "No Last insert ID.\n";
}
}
odbc_close($DB2connPROD);
}