Mysql
 sql >> база данни >  >> RDS >> Mysql

Съхранени процедури, MySQL и PHP

@michal kralik - за съжаление има грешка с MySQL C API, който PDO използва, което означава, че стартирането на вашия код, както по-горе, с някои версии на MySQL води до грешка:

Можете да видите доклада за грешка на bugs.mysql.com . Поправен е за версия 5.5.3+ и 6.0.8+.

За да заобиколите проблема, ще трябва да разделите входни и изходни параметри и да използвате потребителски променливи, за да съхранявате резултата по следния начин:

$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. Как да изберете един ред на случаен принцип, като се вземе предвид теглото?

  2. INNER или LEFT Обединяване на множество записи от таблица в един ред

  3. Свържете се с отдалечена база данни MySQL чрез SSH с помощта на Java

  4. VARCHAR като външен ключ/първичен ключ в базата данни добро или лошо?

  5. Извличане на записи от една таблица, където няма запис в друга