|
|
|
| Здравствуйте !
Подскажите, пожалуйста, как правильно вводить данные в таблицу из
текстового файла, где поля отделены знаком табуляции. Вроде бы
для этого используют команду LOAD DATA.
(У меня есть Самоучитель MySQL5 М.Кузнецова и И.Симдянова 2006г)
Написал:
{ //10 Читать файл в таблицу - не работает
$sel_tab2="testo1";
$in_file= "c:/tempo/test3.txt";
$qq= "LOAD
DATA LOCAL
INFILE
$in_file
INTO
TABLE
$sel_tab2";
include_once ("funct_query.inc");
$rez= my_query($host,$sql_user,$sql_pass,$database, $qq);
} //10
Сообщение:
func_query.db_query:You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near
'c:/tempo/test3.txt INTO TABLE testo1' at line 4
Запрос= LOAD DATA LOCAL INFILE c:/tempo/test3.txt INTO TABLE testo1
Вариант INFILE '$in_file' - пробовал. Пробовал помещать файл test3.txt в папку
где эта БД (работаю локально, Denwer3) тогда $in_file= "test3.txt";
(по аналогии с
$sel_tab= $_REQUEST["sel_tab"];
$out_file="out.txt";
$qq = "SELECT * INTO OUTFILE '$out_file'
LINES TERMINATED BY '\r\n'
FROM $sel_tab";
- где результат - в папке БД - работает нормально.
)
Забыл еще:
привелегии глобальные: FILE, SHOW DATABASES,
на конкретную базу - ALL
размер этого файла 2100 б. | |
|
|
|
|
|
|
|
для: win-ni
(19.08.2008 в 20:36)
| | { //10 Читать файл в таблицу - уже работает
include_once ("funct_vxod.inc");
$conn= vxod($host, $sql_user, $sql_pass, $database);
$qq= "LOAD DATA LOCAL INFILE '$in_file' INTO TABLE
$sel_tab2";
$result=mysql_query($qq, $conn);
$erra= mysql_error();
if (!($erra == ""))
echo
"<font color='#AA0000'>func_query.db_query:".mysql_error()."</font><br>";
else echo "успешно";
mysql_close($conn);
} //10
Нормально работает, можно еще добавить:
FIELDS TERMINATED BY ... и
LINES TERMINATED BY ...
Но причина ускользнула. | |
|
|
|
|
|
|
|
для: Win-ni
(20.08.2008 в 14:31)
| |
$qq= "LOAD DATA LOCAL INFILE $in_file INTO TABLE $sel_tab2";
|
$qq= "LOAD DATA LOCAL INFILE '$in_file' INTO TABLE $sel_tab2";
|
Найди одно отличие :-) | |
|
|
|