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 :: Версия для печати :: Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in
Форумы портала PHP.SU » » Если скрипт не работает » Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in

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

1. Bioslave - 23 Января, 2011 - 22:16:20 - перейти к сообщению
Вот сам код

Вот и ошибка "Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in /var/www/test.php on line 13"

PHP:
скопировать код в буфер обмена
  1. $fp = @fopen ('tex.dbf','r') or die ('Файл невозможно открыть');
  2. $line = @fgets ($fp,1024);
  3.  
  4. /* Esli danniye razdeleni probelom */
  5. echo "<pre>";
  6. echo "Danniye razdelyonniye probelom\n";
  7.  
  8. foreach ($line as $s) {
  9.        
  10.         $data = explode(" ", $s);      
  11.        
  12.         echo "insert into tex (M_VEREQ, BIRKA_IL, BIRKA_NOM, NOMZNAK, MARKA, SERNTP, TIPKUZ, TYPEMASH, GVIP, NDVIG, NBODY, NSHASSI, SVET, VLADEL, ADR, IS_YERI, FHSHEXS, NOV, RAION, EKO, MIH, MAX_MASS, UN_MASS, EMEKDAS, DATA_Z, VERGI1, RUSUM1, YOXLAYAN) values('"null"', '".$data[0]."', '".$data[1]."', '".$data[2]."', '".$data[3]."', '".$data[4]."', '".$data[5]."', '".$data[6]."', '".$data[7]."', '".$data[8]."', '".$data[9]."', '".$data[10]."', '".$data[11]."', '".$data[12]."', '".$data[13]."', '".$data[14]."', '".$data[15]."', '".$data[16]."', '".$data[17]."', '".$data[18]."', '".$data[19]."', '".$data[20]."', '".$data[21]."', '".$data[22]."', '".$data[23]."', '".$data[24]."', '".$data[25]."', '".$data[26]."', '".$data[27]."', '".$data[28]."')\n";   
  13.  
  14. }
  15. echo "</pre>";


Есть бэкап базы из FoxPro , назвается tex.dbf мне нужна взять о туда данные и запихать в в мускул что я и делаю, но вот ошибка уже задолбала толи я сонный ну вообще помогите.
2. Мелкий - 23 Января, 2011 - 22:26:17 - перейти к сообщению
Ну и что написано в ошибке? Синтаксическая ошибка, связанная со строкой. Внимательно перечитайте код на предмет ошибок синтаксиса PHP
Спойлер (Отобразить)
3. Bioslave - 23 Января, 2011 - 22:34:12 - перейти к сообщению
Наверное я точно сонный и нечего не вижу ?
4. OrmaJever - 23 Января, 2011 - 22:35:25 - перейти к сообщению
Напишу подробнее Улыбка
часть кода '"null"' Должна писатся либо так
'".null."' либо так
'null'
5. Bioslave - 24 Января, 2011 - 08:04:05 - перейти к сообщению
Да был сонным не заметил, но вот сейчас это ошибка выходит : Warning: Invalid argument supplied for foreach() in /var/www/test.php on line 10 в чём может быть проблема ?
6. SAD - 24 Января, 2011 - 08:15:31 - перейти к сообщению
уберите все @. у вас массива $line нет!
вот таким образом
PHP:
скопировать код в буфер обмена
  1. while (!feof($fp)) {
  2.     $line[]= fgets($fp, 4096);
  3. }

заносите данные в массив $line
7. Мелкий - 24 Января, 2011 - 09:41:31 - перейти к сообщению
Bioslave пишет:
в чём может быть проблема ?

В том, что fgets возвращает строку, на что foreach, ждущий массив, крайне удивляется.
8. Bioslave - 24 Января, 2011 - 09:48:11 - перейти к сообщению
Ок в принципе всё сделал подправил скрипт, но почему то он построчно не берёт данные и не заносит построчно в базу ? например в 1 колонку пихает по 3 - 4 строки почему так ?

PHP:
скопировать код в буфер обмена
  1. $fp = fopen ('dddddd.xls','r') or die ('Файл невозможно открыть');
  2.  
  3.  while (!feof($fp)) {
  4.  
  5.     $line[]= fgets($fp, 4096);
  6.  
  7. /* Esli danniye razdeleni probelom */
  8. echo "<pre>";
  9. echo "Danniye razdelyonniye probelom\n";
  10.  
  11. foreach ($line as $s)
  12.  {
  13.        
  14.         $data = explode(" ", $s);
  15.  
  16. $link = mysql_connect("localhost", "root", "")
  17.   or die ("Could not connect to MySQL");
  18.  
  19.   or die ("Could not select database");
  20.        
  21. mysql_query("INSERT INTO tex (M_VEREQ, BIRKA_IL, BIRKA_NOM, NOMZNAK, MARKA, SERNTP, TIPKUZ, TYPEMASH, GVIP, NDVIG, NBODY, NSHASSI, SVET, VLADEL, ADR, IS_YERI, FHSHEXS, NOV, RAION, EKO, MIH, MAX_MASS, UN_MASS, EMEKDAS, DATA_Z, VERGI1, RUSUM1, YOXLAYAN,LEGV) values ('".$data[0]."', '".$data[1]."', '".$data[2]."', '".$data[3]."', '".$data[4]."', '".$data[5]."', '".$data[6]."', '".$data[7]."', '".$data[8]."', '".$data[9]."', '".$data[10]."', '".$data[11]."', '".$data[12]."', '".$data[13]."', '".$data[14]."', '".$data[15]."', '".$data[16]."', '".$data[17]."', '".$data[18]."', '".$data[19]."', '".$data[20]."', '".$data[21]."', '".$data[22]."', '".$data[23]."', '".$data[24]."', '".$data[25]."', '".$data[26]."', '".$data[27]."', '".$data[28]."')"); 
  22.  
  23. }
  24. }
  25. echo "</pre>";
9. Мелкий - 24 Января, 2011 - 10:05:03 - перейти к сообщению
phpfaq.ru/debug

А вообще - кошмар.
цикл, в него вложен ещё один цикл (кстати, объясните, нафига он там?) и внутри двух циклов соединение с базой данных! Бедная СУБД, столько линков открывать.
10. OrmaJever - 24 Января, 2011 - 12:28:59 - перейти к сообщению
Bioslave пишет:
Ок в принципе всё сделал подправил скрипт, но почему то он построчно не берёт данные и не заносит построчно в базу ? например в 1 колонку пихает по 3 - 4 строки почему так ?

Для построчногочитания файла есть функция file()
11. JustUserR - 25 Января, 2011 - 15:44:27 - перейти к сообщению
Bioslave Возможной причиной осуществления некорректной работы предполагаемого PHP-приложения является создания такого SQL-запрос для которого не обеспечивается контроль уровня трактования интерполируемых строковых элементов относительно разделительных и управляющих объектов - в качестве допустимого варианта решения возможно предварительное использование функции mysql_real_escape_string осуществляющей дополнительный учет кодовой таблицы

 

Powered by ExBB FM 1.0 RC1