|
|
|
| есть текстовый файл:
Нужно вставить в таблицу БД, где есть 2 поля:
т.е. чтобы id само проставлялось, а name соответственно брался из этого файла по порядку.
Подскажите, как такое реализовать? | |
|
|
|
|
|
|
|
для: Dizels
(26.01.2010 в 19:07)
| | чтение строк из файла - fgets() или file() - на вкус.
Добавлять записи в таблицу БД Вы умеете. В том числе и с автоинкрементом.
В чем сложность? | |
|
|
|
|
|
|
|
для: Dizels
(26.01.2010 в 19:07)
| | Код, создающий необходимую таблицу:
CREATE TABLE name (
id INT(11) NOT NULL AUTO_INCREMENT,
name TINYTEXT,
PRIMARY KEY (id)
);
|
Код php-скрипта:
<?php
//Устанавливаем соединение с MySQL сервером
if(!mysql_connect("localhost", "root", "")) exit("MySQL Сервер недоступен");
//Выбираем нужную базу данных
if(!mysql_select_db("test")) exit("База данных не может быть выбрана");
//Устанавливаем кодировку, в которой MySQL сервер будет принимать данные
mysql_query("SET NAMES 'cp1251'");
//Открываем файл text.txt в режиме чтения
$fd = fopen("text.txt", "r");
//За одну итерацию считываем одну строку файла и помещаем ее в БД
//Выходим из цикла при достижении конца файла(после считывания последней строки)
while(!feof($fd))
{
$str = fgets($fd, 10000);
$query = "INSERT INTO name VALUES(NULL, \"$str\")";
mysql_query($query);
}
//Закрываем файл
fclose($fd);
?>
|
| |
|
|
|
|
|
|
|
для: Alexey_Tihonenko
(27.01.2010 в 09:50)
| | Сколько кавычек может встретится в файле? А SQL-инъекций? | |
|
|
|
|
|
|
|
для: buldovsky
(27.01.2010 в 10:07)
| | в задаче этого не стояло, не надо додумывать.
Файл может быть и собственного приготовления. | |
|
|
|
|
|
|
|
для: GeorgeIV
(27.01.2010 в 10:19)
| | Додумывать откуда этот файл появился, как раз и не надо!
А думать головой - желательно.
В задаче было "занести данные в базу".
В ответе был приведен полный код (включая даже подключение к базе и выбор кодировки), а элементарная кавычка которая может быть в любом названии или имени или наименовании (именно так name переводится) не фильтруется. | |
|
|
|
|
|
|
|
для: buldovsky
(27.01.2010 в 10:07)
| | Я так понял, что человек вообще не знает как осуществить операцию "перекидывания" данных из файла в БД, поэтому привел самый простой пример, который осуществит эту операцию. Тонкости специально опустил, чтобы не запутать автора темы. | |
|
|
|
|
|
|
|
для: Alexey_Tihonenko
(27.01.2010 в 09:50)
| | грамотнее было бы всё это сделать одним запросом | |
|
|
|
|
|
|
|
для: psychomc
(27.01.2010 в 10:41)
| | Может быть)
Почему?
Объясните пожалуйста. | |
|
|
|
|
|
|
|
для: Alexey_Tihonenko
(27.01.2010 в 11:00)
| | нагрузка меньше на бд
если в цикле хотя бы 20 итераций, то мне кажется 20 запросов существенно более ресурсоёмко чем 1 запрос | |
|
|
|