Приветствую !!
Проблема такая. При выполнении в цикле mysql_query происходит почему-то вставка только одной строки, хотя файлов из которых идёт выборка около 10 и в каждом из них есть кусок, который 100% выдёргивается регулярным выражением ... и самое интересное, что происходит вставка в базу только из 4-го файла ...
$files_name - номера файлов, $path - путь к файлам
if(!$link=mysql_connect(\'localhost\',\'zombie\',\'123\'))
{echo "Error
";}
mysql_select_db(\'news\',$link);
for($i=0;$i<=count($files_name)-1;$i++)
{//print"$i ";
$res=file("$path$files_name[$i].txt");
$pattern=".+ .+ |
| ";
$res=implode(\'\',$res);
if(ereg($pattern,$res,$regs))
{//print"$i ";
ereg("[0-9]{1,2} .{3,8} [0-9]{4} [0-9]{1,2}:[0-9]{2}",$regs[0],$da);
ereg("
.+
",$regs[0],$na);
ereg("
.+
",$regs[0],$te); $dat=$da[0]; // print$dat; $nam=substr($na[0],20,-8); //print$nam; $tex=substr($te[0],8,-28); $tex=str_replace(" "," ",$tex); //print$tex; $id=$files_name[$i]; //print$id;
// $query="INSERT INTO news(id,name,content,date) VALUES ($id,$nam,$tex,$dat)"; if($re=mysql_query("INSERT INTO news(id,name,content,date) VALUES (\'$id\',\'$nam\',\'$tex\',\'$dat\')",$link)) {print"$i ";} // sleep(3); } $res=\'\'; }
Или у меня уже зрение не то ... :(
Ошибка в коде. Причем здесь базы данных?
commander: Ошибка в коде. Причем здесь базы данных?
Гм ... может ошибка и есть, но только не в приведённом коде ... Я кажется нашёл засаду ... поле content у меня определено как blob, и, судя по всему, оно определено неверно ... короткие сообщения сохраняются, как это вышло в 4-м файле, а в остальных файлах эти сообщения больше ...
CepbIu На будущее, формулируй вопросы точнее...
А тебе не кажется, что сообщения с такими заголовками надо отправлять не сюда, а разработчикам мускуля? или прямо разработчикам стандарта ANSI SQL :)
|