[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как импортировать?
j11
Всем привет. Подскажите вот такое дело. У меня есть форма для загрузки файла. Файл - это экспортированный файл из phpMyAdmin - file.sql
Загружаю файл, получаю содержимое и затем содержимое посылаю в БД.


$uploaddir = './data/';
$uploadfile = $uploaddir.basename($_FILES['uploadfile']['name']);
copy($_FILES['uploadfile']['tmp_name'], $uploadfile);

$file = file_get_contents($uploadfile);
mysql_query($file);



Но ничего не импортируются. Подскажите как файл импортировать если не через саму phpmyadmin. Через phpMyAdmin в поле SQL работает всё.

Спасибо



Спустя 11 минут, 46 секунд (10.01.2011 - 16:53) Invis1ble написал(а):
j11
mysql_query($file) or die(mysql_error());

Спустя 5 минут, 54 секунды (10.01.2011 - 16:59) Invis1ble написал(а):
улавливаешь, о чем я?

Спустя 12 минут, 49 секунд (10.01.2011 - 17:12) j11 написал(а):
да, конечно, ща смотрю что не так. просто выдаёт ошибку

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 'SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARA' at line 13

Хотя делаю это из одной и той же БД

Постоянно выдаёт ошибки типа неправильный синтаксис. Хотя всё нормально когда через phpmyadmin делаю

Я так понимаю что через функцию mysql_guery нельзя передать дамп файла. поэтому и на следующий запрос типа Insert выдаёт ошибку.

Как можно сделать по-другому что бы работало?

Спустя 10 минут, 56 секунд (10.01.2011 - 17:23) Invis1ble написал(а):
j11
БД здесь не причем, у тебя синтаксическая ошибка в запросе будет. mysql_query() не поддерживает несколько запросов сразу

Спустя 48 секунд (10.01.2011 - 17:24) j11 написал(а):
да, уже понял. отредактировал сообщение)))))

как сделать что бы работало?

Спустя 2 минуты, 32 секунды (10.01.2011 - 17:26) Invis1ble написал(а):
нужно разбить файл на отдельные запросы. Что-то вроде explode(';', $file);

Спустя 9 минут, 17 секунд (10.01.2011 - 17:35) alex12060 написал(а):
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 'SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARA' at line 13


У меня та же фигня) Просто это разные версии мускула, они не улавливают это дело)
пхпмайадмин специально это делает, но при импорте, удаляет эти строки, точнее комменты, и уже генерирует как отдельный запрос)

Как то так)

Спустя 9 минут, 16 секунд (10.01.2011 - 17:45) Invis1ble написал(а):
Причина не в версии мускула. Я когда-то делал что-то подобное. Алгоритм примерно следующий: нужно прочесть файл с помощью file(), потом почистить массив от комментариев. Вот и все. Должно получиться.

Спустя 23 минуты, 19 секунд (10.01.2011 - 18:08) j11 написал(а):
всё норм. правильно говоритInvis1ble, дело в том что надо разбивать.

я разбил с помощью explode();

разбивал по ";" хотя могут возникнуть дальше проблемы, хотя главное знаю причину, а там что нибудь придумаю

Всем спасибо

Спустя 16 минут, 27 секунд (10.01.2011 - 18:24) Invis1ble написал(а):
j11
молодца! главное понять причину проблемы

Спустя 1 час, 28 минут, 47 секунд (10.01.2011 - 19:53) Dron19 написал(а):
разбил explode`ом, потом в цикле foreach перебрал каждый элемент массива и ВСТАВИЛ(в прямом смысле слова) его в бд wink.gif

Спустя 44 минуты, 37 секунд (10.01.2011 - 20:38) SlavaFr написал(а):
если в техтовом поле содержимое имеет ";" то могут возникнуть проблемы.

Спустя 30 минут, 49 секунд (10.01.2011 - 21:09) Dron19 написал(а):
Цитата (SlavaFr @ 10.01.2011 - 17:38)
если в техтовом поле содержимое имеет ";" то могут возникнуть проблемы.

могут, но если правильно в файле данные расположить, то не выскочат никакие ошибки
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.