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

Lagrede procedurer, MySQL og PHP

@michal kralik - desværre er der en fejl med MySQL C API, som PDO bruger, hvilket betyder, at kørsel af din kode som ovenfor med nogle versioner af MySQL resulterer i fejlen:

Du kan se fejlrapporten på bugs.mysql.com . Det er blevet rettet til version 5.5.3+ og 6.0.8+.

For at omgå problemet skal du adskille ind- og ud-parametre og bruge brugervariabler til at gemme resultatet sådan her:

$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. Hvordan udtrækkes kun kolonner, der ikke har nul-værdier i mysql og php?

  2. UTF-8:Generelt? Beholder? Unicode?

  3. DevOps-databaseordliste til MySQL-begynderen

  4. SQL JOIN vs IN ydeevne?