Проблема с дампом.

matrixpro

Новичок
Проблема с дампом.

Здравствуйте,

Возникла следующая проблема. Я сделал экспорт с помощью PhpMyAdmin 2.6.1

В итоге получилось:

DROP TABLE IF EXISTS `theme_genre`;
CREATE TABLE `theme_genre` (
`id` smallint(6) NOT NULL default '0',
`name` varchar(20) NOT NULL default '',
UNIQUE KEY `id` (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;

DROP TABLE IF EXISTS `theme_items`;
CREATE TABLE `theme_items` (
`id` smallint(6) NOT NULL default '0',
`name` varchar(50) NOT NULL default '',
`genre_id` smallint(6) NOT NULL default '0',
`supported_phones` tinyblob NOT NULL,
`fi_ids` smallint(6) NOT NULL default '0',
`screenshot_default` varchar(200) NOT NULL default '',
`screenshot_small` varchar(200) NOT NULL default '',
`screenshot` varchar(200) NOT NULL default '',
UNIQUE KEY `id` (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;

DROP TABLE IF EXISTS `theme_phones`;
CREATE TABLE `theme_phones` (
`id` smallint(6) NOT NULL default '0',
`vendor` varchar(20) NOT NULL default '',
`model` varchar(50) NOT NULL default '',
UNIQUE KEY `id` (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;

DROP TABLE IF EXISTS `theme_services`;
CREATE TABLE `theme_services` (
`id` smallint(6) NOT NULL default '0',
`operator_name` varchar(50) NOT NULL default '',
`phone` varchar(10) NOT NULL default '',
`real_price` float NOT NULL default '0',
`operator_logo` varchar(100) NOT NULL default '',
`group_id` smallint(6) NOT NULL default '0',
`group_price` float NOT NULL default '0',
UNIQUE KEY `id` (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;

Потом, я сделал следующий скрипт:
PHP:
...
$sql = file_get_contents("./damp/theme.sql");
print($sql);
mysql_query($sql, $dblink) or die(mysql_error());
в итоге получилось:
DROP TABLE IF EXISTS `theme_genre`; CREATE TABLE `theme_genre` ( `id` smallint(6) NOT NULL default '0', `name` varchar(20) NOT NULL default '', UNIQUE KEY `id` (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=cp1251; DROP TABLE IF EXISTS `theme_items`; CREATE TABLE `theme_items` ( `id` smallint(6) NOT NULL default '0', `name` varchar(50) NOT NULL default '', `genre_id` smallint(6) NOT NULL default '0', `supported_phones` tinyblob NOT NULL, `fi_ids` smallint(6) NOT NULL default '0', `screenshot_default` varchar(200) NOT NULL default '', `screenshot_small` varchar(200) NOT NULL default '', `screenshot` varchar(200) NOT NULL default '', UNIQUE KEY `id` (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=cp1251; DROP TABLE IF EXISTS `theme_phones`; CREATE TABLE `theme_phones` ( `id` smallint(6) NOT NULL default '0', `vendor` varchar(20) NOT NULL default '', `model` varchar(50) NOT NULL default '', UNIQUE KEY `id` (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=cp1251; DROP TABLE IF EXISTS `theme_services`; CREATE TABLE `theme_services` ( `id` smallint(6) NOT NULL default '0', `operator_name` varchar(50) NOT NULL default '', `phone` varchar(10) NOT NULL default '', `real_price` float NOT NULL default '0', `operator_logo` varchar(100) NOT NULL default '', `group_id` smallint(6) NOT NULL default '0', `group_price` float NOT NULL default '0', UNIQUE KEY `id` (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=cp1251; 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 '; CREATE TABLE `theme_genre` ( `id` smallint(6) NOT NULL def

Т.е. возникает следюущая ошибка:
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 '; CREATE TABLE `theme_genre` ( `id` smallint(6) NOT NULL def

Причём пробовал этот дамп прогнать через PhpMyAdmin - всё отлично.

Нужно очень срочно решить вопрос...

Заранее очень благодарен,
Александр.
 

matrixpro

Новичок
могу исправить, но от этого ничего не измениться.
вот полный текст скрипта:
require_once('lib/xml.php');

$dblink = mysql_connect("localhost","root","717alapass");
if(preg_match('/^5\./',mysql_get_server_info($dblink)))mysql_query('SET SESSION sql_mode=0',$dblink);
mysql_select_db('b2m',$dblink);

$filename = array ('phones'=>'theme_phones.sql','services'=>'theme_services.sql',
'genres'=>'theme_genres.sql','items'=>'theme_items.sql');
xml_start("theme_phones","theme_services","theme_genre","theme_items",$filename);

$sql = file_get_contents("./damp/theme.sql");
print($sql);
mysql_query($sql, $dblink) or die(mysql_error());

-~{}~ 04.01.07 23:33:

Версия MySQL: 4.1.16-max

-~{}~ 04.01.07 23:35:

Только что изменил
mysql_query($sql, $dblink) or die(mysql_error());
на
mysql_query($sql) or die(mysql_error());

Результат ровно один и тот же...
 

Сергей123

Новичок
Вы, видимо, не поняли. Dump - это, в общем случае, __несколько__ SQL-запросов. Вы их все сразу пытаетесь выполнить через mysql_query. Эта функция этого не позволяет.

-~{}~ 04.01.07 22:37:

В строке $sql у Вас несколько SQL-запросов.
 

matrixpro

Новичок
Изменил файл ./damp/theme.sql на

DROP TABLE IF EXISTS `theme_genre`;
CREATE TABLE `theme_genre` (
`id` smallint(6) NOT NULL default '0',
`name` varchar(20) NOT NULL default '',
UNIQUE KEY `id` (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;

В итоге получилась следующая ошибка:
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 '; CREATE TABLE `theme_genre` ( `id` smallint(6) NOT NULL def

Вы это имели ввиду?
 

matrixpro

Новичок
Подскажите мне пожалуйста, что вообще значит это ошибка.
Как я понимаю, MySQL просит проверить синтакс.
Но вроде бы здесь всё нормально...

-~{}~ 04.01.07 23:45:

А..
Извините, не заметил, сейчас попробую...

-~{}~ 04.01.07 23:47:

ок. всё теперь работает.
а как вы посоветуете мне лучше написать скрипт?

разбить по ; и выполнять поочередно?

-~{}~ 04.01.07 23:48:

Или существует какая-то специальная функция?
 

matrixpro

Новичок
Нет, мне нужен скрипт, который будет всё делать автоматически. Там парсинг будет с помощью крона запускаться.
Т.е. не одноразово...
 

Сергей123

Новичок
Странная необходимость (глядя на название таблиц). Зачем это нужно?

Можно писать парсинг, можно найти готовое, можно заливать через утилиту "mysql". Вообще, - я тут не советчик.
 

matrixpro

Новичок
Ясно.
Нужен для парсинга каталога продукции из xml.
Спасибо Вам за помощь!

Тема закрыта.
 

Сергей123

Новичок
Не понимаю, зачем структуру-то при этом создавать каждый раз...
Ну, спасибо, - так спасибо.
Пожалуйста.
 
Сверху