[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Query was empty,
G3/SG1
Суть такова. Есть форма, в которую загружается текстовый файл с SQL-запросами. Эти запросы поочередно выполняются. Но почему-то каждый раз выводится ошибка "Query was empty", но запросы при этом выполняются м данные записываются в базу. Как это исправить и в чем тут может быть причина этого? Вот код скрипта:

PHP
<h3>Импорт записей</h2>
<?
php
  if
(isset($_POST['submit'])){

  if($_FILES['export']['type']!="text/plain"){
      echo "<h4>Импортируемый файл должен быть в формате txt!</h4><br />";
      }else{
          $exported = split(";\r\n", file_get_contents($_FILES['export']['tmp_name']));
        $all = sizeof($exported);

     for($a=0; $a<$all; $a++){
    $query = mysql_query($exported[$a]);
      echo mysql_error()."<br />";
          }
          }



      }


?>
<form enctype="multipart/form-data" method="post">
<input type="file" name="export" /&


Свернутый текст
Вот вроде знаю, что делать SQL-запросы в цикле for смертному греху подобно, но как по-другому тогда делать? Может есть какие-то альтернативные варианты?




Спустя 2 часа, 41 минута, 41 секунда (25.10.2009 - 15:38) Michael написал(а):
Видимо где то в начале в массив пустая строка попадает
Выведи массив после формировки и посмотри, что в нем:
PHP
echo '<pre>';
print_r($exported);
echo 
'</pre>';


Также замени:
PHP
echo mysql_error()."<br />";

на:
PHP
if (!$query) echo mysql_error()."<br />";

Спустя 17 минут, 12 секунд (25.10.2009 - 15:55) G3/SG1 написал(а):
Michael, большое спасибо!! smile.gif

Там в конце массива перевод строки попадал, я прописал в коде array_pop($exported), теперь все работает отлично.


А
PHP
echo mysql_error().'<br />';

- это для отладки было, сейчас уже заменил на предложенный вариант.


Спустя 9 месяцев, 29 дней, 21 час, 46 минут, 6 секунд (25.08.2010 - 12:41) Guest написал(а):
user posted image user posted image

Спустя 2 минуты, 32 секунды (25.08.2010 - 12:43) linker написал(а):
split() ныне в деприкейте, используйте preg_split() или explode(). Просто на всякий случай, чтоб знали на будущее.

Спустя 6 минут, 19 секунд (25.08.2010 - 12:50) twin написал(а):
Еще есть такая функция, как rtrim()

Спустя 5 минут, 58 секунд (25.08.2010 - 12:56) linker написал(а):
А для массивов count()
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.