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

PHP:Gọi thủ tục lưu trữ MySQL với cả tham số INPUT VÀ OUTPUT (KHÔNG VÀO)

Rất tiếc, MySQLi thì không có bất kỳ hỗ trợ bản địa nào cho các thông số đầu ra của mầm; thay vào đó người ta phải xuất thành MySQL biến người dùng và sau đó tìm nạp các giá trị bằng SELECT riêng biệt tuyên bố.

Sử dụng giao diện thủ tục:

$procInput1 = 123;
$procInput2 = 456;
$procInput3 = 789;

$mysqli = mysqli_connect();

$call = mysqli_prepare($mysqli, 'CALL test_proc(?, ?, ?, @sum, @product, @average)');
mysqli_stmt_bind_param($call, 'iii', $procInput1, $procInput2, $procInput3);
mysqli_stmt_execute($call);

$select = mysqli_query($mysqli, 'SELECT @sum, @product, @average');
$result = mysqli_fetch_assoc($select);
$procOutput_sum     = $result['@sum'];
$procOutput_product = $result['@product'];
$procOutput_average = $result['@average'];

Hoặc, sử dụng giao diện hướng đối tượng:

$procInput1 = 123;
$procInput2 = 456;
$procInput3 = 789;

$mysqli = new mysqli();

$call = $mysqli->prepare('CALL test_proc(?, ?, ?, @sum, @product, @average)');
$call->bind_param('iii', $procInput1, $procInput2, $procInput3);
$call->execute();

$select = $mysqli->query('SELECT @sum, @product, @average');
$result = $select->fetch_assoc();
$procOutput_sum     = $result['@sum'];
$procOutput_product = $result['@product'];
$procOutput_average = $result['@average'];


  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 lưu chỉ thời gian không phải ngày tháng trong cơ sở dữ liệu thông qua truy vấn sql

  2. MySQL khớp 2 trong số 5 trường

  3. MySQL IN với LIKE

  4. Trả về kết quả mặc định cho giá trị IN bất kể

  5. Chọn các Cột động trong mysql