sql >> Database >  >> RDS >> Mysql

Opgeslagen procedures, MySQL en PHP

@michal kralik - helaas is er een bug met de MySQL C API die PDO gebruikt, wat betekent dat het uitvoeren van uw code zoals hierboven met sommige versies van MySQL resulteert in de fout:

U kunt het bugrapport bekijken op bugs.mysql.com . Het is opgelost voor versie 5.5.3+ &6.0.8+.

Om dit probleem te omzeilen, moet u parameters voor in- en uitstappen scheiden en gebruikersvariabelen gebruiken om het resultaat als volgt op te slaan:

$stmt = $dbh->prepare("CALL sp_takes_string_returns_string(:in_string, @out_string)");
$stmt->bindParam(':in_string', 'hello'); 

// call the stored procedure
$stmt->execute();

// fetch the output
$outputArray = $this->dbh->query("select @out_string")->fetch(PDO::FETCH_ASSOC);

print "procedure returned " . $outputArray['@out_string'] . "\n";


  1. Kan op afstand verbinding worden gemaakt met SQL Server Express LocalDB?

  2. Accentongevoelige zoekopdracht in MySQL

  3. mysql PDO en opgeslagen procedure dynamische SQL-injectie

  4. KNIME