sql >> Databasteknik >  >> RDS >> Mysql

PHP mysqli förberedd uttalande för lagrad procedur utan parameter

Hur lagrade procedurer fungerar med förberedda uttalanden är lite mer komplicerat. PHP-manual anger att du måste använda sessionsvariabler (MySQL-sessioner, inte PHP)

Så du kan göra det med

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

Anmärkning:

Jag rekommenderar att du skriver om denna procedur som en funktion med en IN-parameter som returnerar INT.



  1. Få bara siffror med regexp

  2. Hur man lägger till 'ON DELETE CASCADE' i ALTER TABLE-satsen

  3. Databasschema för meddelandesystem

  4. Android sqlite db.query leder till CursorIndexOutOfBoundsException