2013-05-16 3 views
-2

Я пытаюсь получить некоторые данные из db Firebird и поместить в mysql db с помощью PHP. Моя проблема в том, что у моего SELECT есть 3847 строк и код просто INSERT 981 строк !!! Вот мой код, я снял соединения и некоторые другие вещи, чтобы писать здесь, потому что все правильно ... Спасибо за помощь!выберите из firebird db insert в mysql db, используя php

$res=ibase_query($conexao, 
"select 
p.id_processo as ID , 
p.alteravel1 as PLACA, 
p.titproc as TITPROC, 
p.data_inicio as RECEPCIONADO, 
p.dt_atu_geral as GERAL, 
p.numproc as N_PROCESSO, 
p.id_cli, 
p.id_adv, 
p.id_fase, 
p.vara as VARA, 
fo.nm_foro as FORO, 
cd.nm_cidade as CIDADE, 
uf.nm_estado as ESTADO 
from processo p 
left join pessoa pss on p.id_adv = pss.id_pessoa 
left join foro fo on p.id_foro = fo.id_foro 
left join cidade cd on fo.id_cidade = cd.id_cidade 
left join estado uf on cd.id_estado = uf.id_estado 
where pss.nome <> 'JORGE LUIS CONFORTO' and 
p.status = '0'" 
); 
$sql="create table if not exists processo1 (
id int(40) not null primary key, 
placa varchar(100), 
titproc varchar(100), 
data_recepcionado datetime, 
data_atual datetime, 
n_processo varchar(100), 
id_cli int(40), 
id_adv int(40), 
id_fase int(40), 
vara int(40), 
foro varchar(100), 
cidade varchar(100), 
estado varchar(100) 
)"; 

mysqli_query($conexao1, $sql); 

while ($escrever=ibase_fetch_assoc($res)){ 
$id = $escrever['ID']; 
$placa = $escrever['PLACA']; 
$titproc = $escrever['TITPROC']; 
$dtin = $escrever['RECEPCIONADO']; 
$dtatu = $escrever['GERAL']; 
$nproc = $escrever['N_PROCESSO']; 
$cli = $escrever['ID_CLI']; 
$adv = $escrever['ID_ADV']; 
$fase = $escrever['ID_FASE']; 
$vara = $escrever['VARA']; 
$foro = $escrever['FORO']; 
$cidade = $escrever['CIDADE']; 
$estado = $escrever['ESTADO']; 

$query = "insert into processo1 (
id, 
placa, 
titproc, 
data_recepcionado, 
data_atual, 
n_processo, 
id_cli, 
id_adv, 
id_fase, 
vara, 
foro, 
cidade, 
estado) 
values (
'$id', 
'$placa', 
'$titproc', 
'$dtin', 
'$dtatu', 
'$nproc', 
'$cli', 
'$adv', 
'$fase', 
'$vara', 
'$foro', 
'$cidade', 
'$estado' 
)"; 

mysqli_query($conexao1, $query); 
} 
+1

[mysqli_error()] (http://uk.php.net/manual/en/mysqli.error.php) является вашим другом, что он говорит вам о проблеме? – Anigel

+0

Может быть, у вас закончилась нехватка памяти или вы теряете время? – shadyyx

+0

Это не память или таймаут. Я меняю выбор на SELECT TOP 50, а INSERT возвращает 10 строк !!!! – user2390397

ответ

0

Вы всегда должны проверять наличие ошибок после запуска каждого запроса.

Вероятно, ваши вставки по какой-то причине не работают. Точной причиной может быть что угодно, но если по крайней мере так вы должны быть уведомлены о каких-либо ошибках с вставками, которые не работают.

if (!$mysqli_query($query)) { 
    printf("Error: %s\n", $mysqli_error()); 
} 
+0

Спасибо за помощь Аниджел! Проблема в том, что он не печатает никаких сообщений об ошибке, похоже, что все нормально ... – user2390397

+0

Вы показываете ошибки и проверили ли вы журнал ошибок сервера? Похоже, что вы можете быть прекращены до завершения всех вставок. Обычно это связано с превышением максимального времени выполнения или допустимой памяти. – Anigel

+0

Да! Я думаю, что он превышает максимальную память, потому что я изменяю все максимальное время, которое мог бы сделать в php.ini ... Thaks again – user2390397

Смежные вопросы