Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: php скрипт добавление данных в MySQL
Форумы портала PHP.SU » » Работа с СУБД » php скрипт добавление данных в MySQL

Страниц (1): [1]
 

1. kitaeca - 07 Октября, 2011 - 11:45:06 - перейти к сообщению
Кто подскажет где собаку зарыли:
По текстовому файлу пробегаю циклом и данные в табличку ложу
Ложится только первая запись. Только после первого запуска.
Кто-то где-то что- то запоминает и второй раз работать не хотит.
FreeBSD
#!/usr/local/bin/php
<?
do {
$st=fgets($fo);
$pole1=trim(substr($st,0,15)); # ot
$pole2=trim(substr($st,19,6)); # port_ot
$pole3=trim(substr($st,27,15)); # to
$pole4=trim(substr($st,46,6)); # port_to
$pole5=trim(substr($st,54,4)); # proto
$pole6=trim(substr($st,69,10)); # bates all
mysql_query("insert into `traffic` values('$pole1','$pole2','$pole3','$pole4','$pole5','$pole6','$pole7')");
} while (!feof($fo));
?>
2. Мелкий - 07 Октября, 2011 - 11:55:26 - перейти к сообщению
Вопрос - а fopen-то где?
3. JohnnyB - 07 Октября, 2011 - 12:26:16 - перейти к сообщению
kitaeca пишет:
Ложится только первая запись. Только после первого запуска.

Первая запись имеется ввиду $pole1, или вообще все $pole* но только один прогон по циклу?
4. DeepVarvar - 07 Октября, 2011 - 12:39:14 - перейти к сообщению
Жоско...
Мелкий пишет:
fopen-то где?

Ага и:
PHP:
скопировать код в буфер обмена
  1. $separator = "---xxx---"; // чем там у вас данные разделяются?
  2. list($pole1,$pole2,$pole3,$pole4,$pole5,$pole6) =
  3.   explode($separator,$st);
5. kitaeca - 10 Октября, 2011 - 03:33:11 - перейти к сообщению
Извините, ребята, но много среди вас философофФ.
Если данные ложатся, значит есть и опен и брат ганс Клозе
Данные не разделяются , а вырезаются из строки (только по секрету: substr)
Если после mysql_query выводить ЭХО, то ВСЕ! переменные выводятся красиво и меняют значения в цикле.

В строке mysql_query остается одна лежащая грабля с дохлой кошкой : mysql_query отрабатывает 1 раз, занося данные в таблицу. Появляется 1 запись. Повторный запуск скрипта нечего не дает. Может есть какие либо переменные окружения, настройки в php или MySql, что sql думает чего я так часто буду работать , я вот только что вставила....
6. LIME - 10 Октября, 2011 - 03:50:23 - перейти к сообщению
возможно меня китайца философом обзовет
ну и пусть
резкну ))
kitaeca а Клозе для мускуля у вас случаем не сразу после запроса в цикле?
а ошибки у вас выводятся?
и еще будет куча философских вопросов если не приведете более подробный код

п.с.: эЭх... стану телепатом
7. Мелкий - 10 Октября, 2011 - 09:31:12 - перейти к сообщению
kitaeca пишет:
Если данные ложатся, значит есть и опен и брат ганс Клозе

Ну извините, быть пророком трудно. Что привели - от того и отталкиваемся в порядке вероятности события. Все возможные варианты охватывает вот эта статья: phpfaq.ru/debug

Может, у вас вовсе уникальный ключ стоит на не фигурирующее в запросе поле - тогда, само собой, возможно вставить только 1 строку со значением по-умолчанию. Гадать долго можно.
8. kitaeca - 10 Октября, 2011 - 09:38:10 - перейти к сообщению
#!/usr/local/bin/php
<?
$f=date("Ymd")-1;
$f=$f.".rl1"; # name the file for boot to sql
$d="/usr/home/admin/traflog_i/"; # directory whee file
$f=$d.$f;
$fo=fopen($f,"r");
// skip 4 lines
for ($i=1;$i<=4;$i++) {
$st=fgets($fo);
}
include("setup.php");
$conn=mysql_connect($host,$mysql_user,$mysql_pass) or DIE("not connect to MySql");
@mysql_select_db("firewall") or die("not select base firewall");
// GoGo!
$pole7=date("Ymd")-1; # date
do {
# echo $pole1." --> ".$pole3." = ".$pole6."\r\n";
# echo $result."-" ;
$st=fgets($fo);
$pole1=trim(substr($st,0,15)); # ot
$pole2=trim(substr($st,19,6)); # port_ot
$pole3=trim(substr($st,27,15)); # to
$pole4=trim(substr($st,46,6)); # port_to
$pole5=trim(substr($st,54,4)); # proto
$pole6=trim(substr($st,69,10)); # bates all
if (empty($pole1)) {break;}
mysql_query("insert into `traffic` values('$pole1','$pole2','$pole3','$pole4','$pole5','$pole6','$pole7')");
} while (!feof($fo));

$sql_clo=mysql_close($conn);
$fc=fclose($fo);
?>
(Добавление)
Вот собственно творение от начала до конца. Может мысля зашивелится. Я пока по ссылке фаг поизучаю

 

Powered by ExBB FM 1.0 RC1