Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Thủ tục được lưu trữ, MySQL và PHP

@michal kralik - rất tiếc có một lỗi với MySQL C API mà PDO sử dụng, có nghĩa là việc chạy mã của bạn như trên với một số phiên bản của MySQL dẫn đến lỗi:

Bạn có thể xem báo cáo lỗi trên bug.mysql.com . Nó đã được sửa cho phiên bản 5.5.3+ &6.0.8+.

Để giải quyết vấn đề, bạn cần phải tách biệt các tham số vào và ra và sử dụng các biến người dùng để lưu trữ kết quả như sau:

$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. Làm cách nào để xuất cơ sở dữ liệu mysql bằng Command Prompt?

  2. Kích hoạt để âm thầm bỏ qua / xóa các mục nhập trùng lặp trên INSERT

  3. Cần trợ giúp về lỗi perl khi sử dụng DBD ::mysql

  4. mysql:tại sao so sánh 'chuỗi' với 0 lại cho kết quả đúng?

  5. Tham gia bảng có giá trị MAX từ một bảng khác