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

PHP - MySQL nhận giá trị của tham số từ một thủ tục được lưu trữ

Hoặc thậm chí chỉ cần thực hiện "SELECT @id AS id" rồi đến $row->id sẽ hoạt động tốt. Tôi luôn đổi tên các cột được chọn để giữ tên có ý nghĩa khi cần thiết :-)

BTW, bạn có thể chỉ cần nối cuộc gọi và chọn @ ... (với dấu phân cách câu lệnh) và RS sẽ là giá trị trả về. Thật không may, điều này trả về một tập kết quả đột biến và bạn cần phải xóa toàn bộ tập hợp nếu không các truy vấn tiếp theo sẽ bị đình trệ. Xem các ví dụ sau:

$db->multi_query( "CALL addNewUser($name,$age,@id);SELECT @id as id" );
$db->next_result();            // flush the null RS from the call
$rs=$db->store_result();       // get the RS containing the id
echo $rs->fetch_object()->id, "\n";
$rs->free();

Ngoài ra, hãy thêm lựa chọn vào addNewUser và trả về một RS thay vì ngoài tham số

$rs = $db->query( "CALL addNewUser($name,$age)" );
echo $rs->fetch_object()->id, "\n";
$rs->close();
$db->next_result();            // flush the null RS from the call

Đầu tiên trả về tập hợp nhiều truy vấn (NULL, RS) và tập hợp a (RS, NULL) thứ hai, do đó bạn có thể sử dụng lệnh gọi truy vấn () đơn giản để nhúng fetch_object () đầu tiên, nhưng bạn vẫn cần xóa ngăn xếp RS.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách kiểm tra phiên bản MySQL

  2. Phương pháp tốt nhất để xử lý lỗi bằng PDO

  3. Bật kết nối MySQL từ xa:LỖI 1045 (28000):Quyền truy cập bị từ chối đối với người dùng

  4. đăng nhập với tư cách người dùng hoặc quản trị viên từ 2 bảng khác nhau

  5. Chỉ chọn hàng mẹ nếu hàng đó không có hàng con