Автор Тема: Perl DBI, MySQL  (Прочетена 3112 пъти)

sunhater

  • Напреднали
  • *****
  • Публикации: 329
    • Профил
Perl DBI, MySQL
« -: Nov 23, 2005, 13:17 »
Здравейте,

Защо заявки като ALTER TABLE, CREATE INDEX, LOAD DATA не искат да se изпълнят с Perl DBI. Ето пример:
Примерен код
$query = "LOAD DATA LOCAL INFILE 'db.txt' INTO TABLE TEMP";
$dbh->do($query);
Дава грешка:
Примерен код
DO: Something wrong while try to prepare query This command is not supported in the prepared statement protocol yet
Заявката се изпълнява ако ползвам mysql клиента, но не и от DBI. Къде е проблема? Подозирам че е от версията на MySQL, защото преди време си спомням, че изпълнявах такива заявки на 4.0.x.

Версиите:

Gentoo 2005.1
MySQL 4.1.14
Perl 5.8.6
DBI 1.46
Активен

peio

  • Напреднали
  • *****
  • Публикации: 74
    • Профил
Perl DBI, MySQL
« Отговор #1 -: Dec 15, 2005, 01:24 »
Пробвай нещо подобно:
Примерен код
my $dbh = DBI->connect($credentials);
$query = "LOAD DATA LOCAL INFILE 'db.txt' INTO TABLE TEMP";
my $qh = $dbh->prepare($query) or die "Couldn't prepare query '$query': $DBI::errstr\n";
$qh->execute() or die "Couldn't execute query '$query': $DBI::errstr\n";

И ако работи, се опитай да разбереш повече за prepare фазата.
Активен

  • Гост
Perl DBI, MySQL
« Отговор #2 -: Dec 22, 2005, 14:06 »
Цитат (sunhater @ Ноември 23 2005,14:17)
Здравейте,

Защо заявки като ALTER TABLE, CREATE INDEX, LOAD DATA не искат да se изпълнят с Perl DBI. Ето пример:
Примерен код
$query = "LOAD DATA LOCAL INFILE 'db.txt' INTO TABLE TEMP";
$dbh->do($query);
Дава грешка:
Примерен код
DO: Something wrong while try to prepare query This command is not supported in the prepared statement protocol yet
Заявката се изпълнява ако ползвам mysql клиента, но не и от DBI. Къде е проблема? Подозирам че е от версията на MySQL, защото преди време си спомням, че изпълнявах такива заявки на 4.0.x.

Версиите:

Gentoo 2005.1
MySQL 4.1.14
Perl 5.8.6
DBI 1.46

Zdrasti az imah sashtia problem. Sled mnogo tarsene v google si go reshih. Prosto trjabva rachno da si downgrade-nesh DBD-mysql modula do versia 3.0000. V momenta versiata v gentoo e 3.0000_4 kojato e developerska i maj polzva njakakvo novo "prepared statement" API, koeto v mysql 5 e bozavo.

mnogo zdrave i dalgoletie!
Активен

VladSun

  • Moderator
  • Напреднали
  • *****
  • Публикации: 2166
    • Профил
Perl DBI, MySQL
« Отговор #3 -: Dec 22, 2005, 15:07 »
доколкото знам ТРЯБВА да пускаш mysqld с --local-infile=1 опция за да работи LOAD DATA LOCAL INFILE
При мен е:

safe_mysqld --user=mysqluser --skip-innodb --local-infile=1 &
Активен

KISS Principle ( Keep-It-Short-and-Simple )
http://openfmi.net/projects/flattc/
Има 10 вида хора на този свят - разбиращи двоичния код и тези, които не го разбират :P

Подобни теми
Заглавие Започната от Отговора Прегледи Последна публикация
Perl
Общ форум
x11r6 5 3563 Последна публикация Aug 09, 2003, 10:03
от x11r6
Perl
Общ форум
Йордан 3 3009 Последна публикация Nov 13, 2003, 16:14
от Йордан
Perl + CGI,DBI + Mysql ili PHP + Mysql
Общ форум
jica 3 5120 Последна публикация Sep 07, 2004, 17:02
от jica
Mysql проблем със стартирането(mysql.sock missing)
Настройка на програми
coveka 6 6933 Последна публикация Mar 01, 2008, 22:02
от coveka
Mysql: can't connect to local mysql server
Настройка на програми
wonder 1 5311 Последна публикация Mar 16, 2008, 01:17
от neter