Linux за българи: Форуми

Програмиране => Web development => Темата е започната от: sunhater в Nov 23, 2005, 13:17



Титла: Perl DBI, MySQL
Публикувано от: sunhater в 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


Титла: Perl DBI, MySQL
Публикувано от: peio в 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
Публикувано от: в 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!


Титла: Perl DBI, MySQL
Публикувано от: VladSun в Dec 22, 2005, 15:07
доколкото знам ТРЯБВА да пускаш mysqld с --local-infile=1 опция за да работи LOAD DATA LOCAL INFILE
При мен е:

safe_mysqld --user=mysqluser --skip-innodb --local-infile=1 &