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

PHP mysqli изготви изявление за съхранена процедура без параметър out

Начинът, по който съхранените процедури работят с подготвени изрази, е малко по-сложен. Ръководство за PHP посочва, че трябва да използвате променливи на сесията (сесии на MySQL, а не на PHP)

Така че можете да го направите с

$connect=&ConnectDB();
// bind the first parameter to the session variable @uid
$stmt = $connect->prepare('SET @uid := ?');
$stmt->bind_param('s', $uid);
$stmt->execute();

// bind the second parameter to the session variable @userCount
$stmt = $connect->prepare('SET @userCount := ?');
$stmt->bind_param('i', $userCount);
$stmt->execute();

// execute the stored Procedure
$result = $connect->query('call IsUserPresent(@uid, @userCount)');

// getting the value of the OUT parameter
$r = $connect->query('SELECT @userCount as userCount');
$row = $r->fetch_assoc();               

$toRet = ($row['userCount'] != 0);

Забележка:

Препоръчвам да пренапишете тази процедура като функция с един IN параметър, който връща INT.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Задайте часова зона в PHP и MySQL

  2. PyMySQL не може да се свърже с MySQL на localhost

  3. mysql персонализирано сортиране

  4. ВЪВЕТЕ множество записа, използвайки активен запис на ruby ​​on rails

  5. Как да изключа проверката на паролата на mysql?