Руководство по языку программирования PHP
 

PCRE
 

PHP и mysql

Пакетная загрузка данных в таблицу mysql

Для загрузки данных из текстового файла (пакетная загрузка) в таблицу mysql используется оператор load data.

В общем случае оператор load data можно представить в следующем виде:

load data [local] infile 'file_name' into table name_table

где:

file_name - файл с данными

name_table - таблица с данными

local - ключевое слово указывающее, что данные находятся на стороне клиента.

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

Таблицу создаем следующим php кодом:

<?php
$connection = new mysqli("localhost","root","",'mybase');
$query = "create table auto (model varchar(20), id_number INT, unique key(model))";
$result = $connection->query($query);

?>

Текстовый файл пусть будет иметь следующий вид:

BMV 789

vaz 450

kamaz 874

Сохраним его под названием models.txt

Загрузку данных продемонстрируем следующим примером

Пример 1:

<?php
$connection = new mysqli("localhost","root","",'mybase');
$query = "load data local infile 'c:/models.txt' into table auto";
$result = $connection->query($query);

?>

В этом примере при указании пути нахождения текстового файла используется обратный слэш "/", вместо него можно также использовать и обычный слэш, но в этом случае его надо экранировать "\\"

В качестве разделителя строк в текстовом файле по умолчанию используется символ перевода строки \n, а в качестве разделителя столбцов - табуляция.

Символ разделителя строк можно задать самостоятельно, используя ключевую фразу: lines terminated by '*'.

Если нужно указать разделитель столбцов, то для этого используется ключевая фраза: fields terminated by '$'

Пример 2:

В этом примере будет записано в таблицу две строки из файла models.txt.

Файл models.txt имеет следующее содержание: vaz$44*kamaz$34*

<?php
$connection = new mysqli("localhost","root","",'mybase');
$query = "load data local infile 'c:/models.txt' into table auto fields terminated by '$' lines terminated by '*' ";
$result = $connection->query($query);

?>

 

- Создание базы данных
- Создание таблиц
- Индексы в mysql
- Добавление данных
- Загрузка данных из файла
- Выборка данных
- Сортировка данных в sql запросе
- Использование функций в sql запросе
- Группировка данных
- Объединение sql запросов
- Сохранение sql запроса в файл
- Удаление данных
- Обновление данных
- Добавление и удаление столбцов
- Перестановка столбцов
- Изменение типов столбцов
- Переименование названия таблицы и столбцов
- Добавление и удаление индексов

 

 

???????@Mail.ru