Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Procedury składowane, MySQL i PHP

@michal kralik - niestety jest błąd w interfejsie MySQL C API, którego używa PDO, co oznacza, że ​​uruchomienie kodu jak powyżej z niektórymi wersjami MySQL powoduje błąd:

Możesz zobaczyć raport o błędzie na bugs.mysql.com . Zostało to naprawione dla wersji 5.5.3+ i 6.0.8+.

Aby obejść ten problem, musisz oddzielić parametry wejściowe i wyjściowe oraz użyć zmiennych użytkownika do przechowywania wyniku w następujący sposób:

$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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wybierz ostatni wiersz z GROUP BY w MySQL

  2. Symfony 2:INNER JOIN na niepowiązanej tabeli z konstruktorem zapytań doktryny

  3. Przydatne wskazówki dotyczące rozwiązywania typowych błędów w MySQL

  4. Dostawcy członkostwa/roli ASP.NET dla MySQL?

  5. Błąd (kod błędu:1175) podczas wykonywania polecenia aktualizacji na stole przy użyciu MySQL Workbench 5.2