|
|
|
| хочу сдедать так чтобы данные обновлялись из файла в базу через 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>Не выполнен";
то же ни чего не получается
В чем дело как исправить?
Заранее спасибо. | |
|
|
|
|
|
|
|
для: _query
(02.08.2006 в 09:16)
| | автор: cheops (01.08.2006 в 22:42)
mysql_query() может выполнить только одну инструкцию. | |
|
|
|
|
|
|
|
для: _query
(02.08.2006 в 09:16)
| | А почему у вас четыре обратных слеша \\\\? Используйте прямые слеши /, которые не нужно экранировать. Файл tbl.txt у вас где лежит (положите его для начала в C:/mysql/bin)? | |
|
|
|
|
|
|
|
для: 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
(02.08.2006 в 15:30)
| | Ну так что все таки написать чтоб заработало? | |
|
|
|
|
|
|
|
для: _query
(02.08.2006 в 15:30)
| | Хм... погодите, так не правильно
<?php
sql2 ="INTO TABLE 'tbl' FIELDS TERMINATED BY ';' ENCLOSED BY '"' ESCAPED BY '\\' LINES TERMINATED BY '\r\n'"";
?>
|
Давайте с самого начала - у вас какая цель, что хотите сделать? | |
|
|
|
|
|
|
|
для: cheops
(03.08.2006 в 12:17)
| | >>Хм... погодите, так не правильно
- что не правильно в принципе неправильно или
неправильно. здесь наверное нужно поставить . Просто пхпму админ так поставил но не в этом суть.
Цель научится вставлять данные в таблицу оператором 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
(04.08.2006 в 04:42)
| | Ответте пожалуйста... | |
|
|
|