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

PHP:Извикване на MySQL Съхранена процедура с входни и изходни параметри (НЕ INOUT)

За съжаление MySQLi не имат вградена поддръжка за изходни параметри sproc; вместо това трябва да изведете в MySQL потребителски променливи и след това извлечете стойностите с помощта на отделен SELECT изявление.

Използване на процедурния интерфейс:

$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'];

Или с помощта на обектно-ориентирания интерфейс:

$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. Как да дефинирате уникално ограничение за колона от MySQL таблица в Ruby on Rails 3?

  2. 10 причини да се придържате към MySQL

  3. Следвайте дизайна на таблицата с потребителска база данни

  4. Как да се свържете с MySQL с помощта на PHP

  5. Не може да се инсталира mysqlclient на centos