sql >> Database teknologi >  >> RDS >> Mysql

Hvordan kalder jeg MySQL-lagrede procedurer fra Perl?

MySQL-lagrede procedurer, der producerer datasæt, kræver, at du bruger Perl DBD::mysql 4.001 eller nyere. (http://www.perlmonks.org/?node_id=609098 )

Nedenfor er et testprogram, der vil fungere i den nyere version:

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)'

Men hvis du har en for gammel version af DBD::mysql, får du resultater som dette:

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

Du kan installere den nyeste DBD ved hjælp af CPAN.



  1. Opdel en streng og gå gennem værdier i MySql Procedure

  2. Kan vi sende parametre til en visning i SQL?

  3. SQL Injection i Java og MySQL ved brug af flere forespørgsler

  4. MySQL ResultSet scrollable/updatable fungerer ikke som forventet