Задавайте вопросы, мы ответим
Вы не зашли.
Не приходилось ли кому-нибудь из участников форума выполнять команду SOURCE из запущенного на Windows Perl-скрипта. Эта простая, на первый взгляд, задача поставила меня в тупик. Все другие команды из скриптов (например, создание временной таблицы или запись информации во внешний файл) выполнялись успешно. Возможно, кто-нибудь разглядит в этом простейшем коде ошибку:
#!C:/perl/bin/perl
use DBI;
use CGI::Carp qw(fatalsToBrowser);
print "Content-type: text/html\n\n";
$db_name = 'movie';
$db_host = 'localhost';
$db_post = '3306';
$db_user = 'root';
$db_passwd = '';
$dbh = DBI->connect("DBI:mysql:$db_name:$db_host:$db_port", $db_user, $db_passwd);
$rv = $dbh->do("SOURCE C:/mysql/table1.sql;");
$dbh->disconnect;
if ($rv > 0) {
print 'YES';
} else {
print 'NO';
}
При запуске скрипта появляется следующее сообщение об ошибке:
[Wed Jul 27 11:49:37 2011] perltemp.pl: DBD::mysql::db do failed: 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 'SOURCE C:/mysql/table1.sql' at line 1 at save_dvd_test.pl line 21.
Путь к файлу указан верно, и эта команда успешно выполняется в командной строке Windows.
Благодарю Вас.
Отредактированно slovnic (27.07.2011 12:01:16)
Неактивен
SOURCE не SQL-оператор, а команда клиента (mysql), поэтому выполнить SOURCE вне клиента mysql не получится.
Неактивен
Здравствуйте!
Благодарю Вас за ответ.
Для загрузки информации из внешнего файла применяется специальный оператор LOAD DATA. Попробую использовать его.
Еще раз спасибо за помощь!
Неактивен