Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: load date что не так?
 
 автор: _query   (02.08.2006 в 09:16)   письмо автору
 
 

хочу сдедать так чтобы данные обновлялись из файла в базу через load date

запрос пишу такой например:
файл на сервере в той же папке
$sql = "LOAD INFILE 'test\\\\tbl.txt' INSERT INTO TABLE tbl";
echo $sql;
if(mysql_query($sql))
echo "<br>Запрос выполнен"; else echo "<br>Не выполнен";

мне пишет что запрос не выполнен... почему?

вставляю файл через пхпМайАдмин
автоматически формирует такой запрос

LOAD DATA LOCAL INFILE 'C:\\Program Files\\PHP\\uploadtemp\\php123.tmp' INTO TABLE 'tbl' FIELDS TERMINATED BY ';' ENCLOSED BY '"' ESCAPED BY '\\' LINES TERMINATED BY '\r\n'

пишу
$sql = "LOAD DATA LOCAL INFILE '".$_FILES['filename']['tmp_name']."' INTO TABLE 'tbl' FIELDS TERMINATED BY ';' ENCLOSED BY '"' ESCAPED BY '\\' LINES TERMINATED BY '\r\n'";
if(mysql_query($sql))
echo "<br>Запрос выполнен"; else echo "<br>Не выполнен";

то же ни чего не получается

В чем дело как исправить?
Заранее спасибо.

   
 
 автор: RootCraft   (02.08.2006 в 09:58)   письмо автору
 
   для: _query   (02.08.2006 в 09:16)
 

автор: cheops (01.08.2006 в 22:42)
mysql_query() может выполнить только одну инструкцию.

   
 
 автор: cheops   (02.08.2006 в 10:17)   письмо автору
 
   для: _query   (02.08.2006 в 09:16)
 

А почему у вас четыре обратных слеша \\\\? Используйте прямые слеши /, которые не нужно экранировать. Файл tbl.txt у вас где лежит (положите его для начала в C:/mysql/bin)?

   
 
 автор: _query   (02.08.2006 в 15:30)   письмо автору
 
   для: cheops   (02.08.2006 в 10:17)
 

4 обратных слеша потому что так пхпмуадмин делал для LOAD DATA LOCAL INFILE 'C:\\Program Files\\PHP\\uploadtemp\\php123.tmp'... ничего не получилось и я стал пробовать все подряд:) и думал что то как пишет пхпадмин единтвенно правильный вариант... теперь буду знать что можно и так спасибо cheops.

> RootCraft
>mysql_query() может выполнить только одну инструкцию.

тогда что мне нужно написать чтобы заработало? :
sql1 = "LOAD DATA LOCAL INFILE '".$_FILES['filename']['tmp_name']."' 
if(mysql_query($sql1)) echo "sql1";
sql2 ="INTO TABLE 'tbl' FIELDS TERMINATED BY ';' ENCLOSED BY '"' ESCAPED BY '\\' LINES TERMINATED BY '\r\n'"";
if(mysql_query($sql2)) echo "sql2";


или как?
мне кажется я ошибаюсь...

   
 
 автор: _query   (03.08.2006 в 08:27)   письмо автору
 
   для: _query   (02.08.2006 в 15:30)
 

Ну так что все таки написать чтоб заработало?

   
 
 автор: cheops   (03.08.2006 в 12:17)   письмо автору
 
   для: _query   (02.08.2006 в 15:30)
 

Хм... погодите, так не правильно
<?php
sql2 
="INTO TABLE 'tbl' FIELDS TERMINATED BY ';' ENCLOSED BY '"' ESCAPED BY '\\' LINES TERMINATED BY '\r\n'"";
?>

Давайте с самого начала - у вас какая цель, что хотите сделать?

   
 
 автор: _query   (04.08.2006 в 04:42)   письмо автору
 
   для: cheops   (03.08.2006 в 12:17)
 

>>Хм... погодите, так не правильно
- что не правильно в принципе неправильно или
ENCLOSED BY '"'
неправильно. здесь наверное нужно поставить
'\"\
. Просто пхпму админ так поставил но не в этом суть.

Цель научится вставлять данные в таблицу оператором LOAD DATA и выгружать из неё пока не знаю как лучше... потому что проблемуы с загрузкой.

Т.е. когда пользуюсь для этого пхпМуАдмином (вставить текстовые файлы в таблицу) он загружает его так:

LOAD DATA LOCAL INFILE 'C:\\Program Files\\PHP\\uploadtemp\\phpD1.tmp' INTO TABLE 'rol_faq' FIELDS TERMINATED BY ';' ENCLOSED BY '"' ESCAPED BY '\\' LINES TERMINATED BY '\r\n'


мне нужно сделать это через пхп.
На одной странице я создал форму которая файл передает. На другуой текстовый файл вставляется в таблицу.

т.е. я смотрю В вашу книгу по mysql5(там только команды mysql, но вроде и так понятно) и ориентируюсь по тому что написал ПхпМайАдмин... но почему то что то не получается.
И пишу:

<?

if(!empty($_FILES['filename']['tmp_name']))
{
$files=$_FILES['filename']['tmp_name'];
echo 
"<br>";echo $files;echo "<br>";

$sql="LOAD DATA LOCAL INFILE '$files' INTO TABLE 'rol_faq' FIELDS TERMINATED BY ';' ENCLOSED BY '\"' ESCAPED BY '\\' LINES TERMINATED BY '\r\n'";
echo 
$sql;
if(
mysql_query($sql)) echo "записалось"; else echo "не записалось";
}
?>


Мне пишет

C:\Program Files\PHP\uploadtemp\phpEA.tmp
LOAD DATA LOCAL INFILE 'C:\Program Files\PHP\uploadtemp\phpEA.tmp' INTO TABLE 'rol_faq' FIELDS TERMINATED BY ';' LINES TERMINATED BY ' 'не записалось

Вопрос: почему?

   
 
 автор: _query   (07.08.2006 в 04:05)   письмо автору
 
   для: _query   (04.08.2006 в 04:42)
 

Ответте пожалуйста...

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования