sql >> Databáze >  >> RDS >> Mysql

Uložené procedury, MySQL a PHP

@michal kralik - bohužel existuje chyba v MySQL C API, které PDO používá, což znamená, že spuštění vašeho kódu jako výše s některými verzemi MySQL vede k chybě:

Hlášení o chybě si můžete prohlédnout na bugs.mysql.com . Bylo to opraveno pro verzi 5.5.3+ a 6.0.8+.

Chcete-li problém vyřešit, budete muset oddělit vstupní a výstupní parametry a použít uživatelské proměnné k uložení výsledku takto:

$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. SQL Jak nahradit hodnoty select return?

  2. Aktualizace databáze sqlite pro android

  3. Najděte řádky, kde textové pole obsahuje hodnotu podobnou vstupu

  4. SQL vybrat n-tého člena skupiny