Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie rufe ich gespeicherte MySQL-Prozeduren von Perl aus auf?

Gespeicherte MySQL-Prozeduren, die Datensätze erzeugen, erfordern die Verwendung von Perl DBD::mysql 4.001 oder höher. (http://www.perlmonks.org/?node_id=609098 )

Unten ist ein Testprogramm, das in der neueren Version funktioniert:

mysql> delimiter //
mysql> create procedure Foo(x int)
  -> begin
  ->   select x*2;
  -> end
  -> //

perl -e 'use DBI; DBI->connect("dbi:mysql:database=bonk", "root", "")->prepare("call Foo(?)")->execute(21)'

Aber wenn Sie eine zu alte Version von DBD::mysql haben, erhalten Sie Ergebnisse wie diese:

DBD::mysql::st execute failed: PROCEDURE bonk.Foo can't return a result set in the given context at -e line 1.

Sie können die neueste DBD mit CPAN installieren.