sql >> Database >  >> RDS >> Mysql

PHP mysqli voorbereide verklaring voor opgeslagen procedure zonder parameter

De manier waarop opgeslagen procedures werken met voorbereide instructies is iets gecompliceerder. PHP-handleiding stelt dat je sessievariabelen moet gebruiken (MySQL-sessies, niet PHP)

Dus je zou het kunnen doen met

$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);

Opmerking:

Ik raad aan om deze procedure te herschrijven als een functie met één IN-parameter die INT retourneert.



  1. Hoe werkt de 'in'-clausule in orakel

  2. Datum en tijd Locales beschikbaar in MariaDB

  3. Converteer een maandnaam naar het maandnummer in SQL Server (T-SQL)

  4. Gegoten van VARCHAR naar INT - MySQL