ストアドプロシージャがプリペアドステートメントで機能する方法は、もう少し複雑です。 PHPマニュアル セッション変数(PHPではなくMySQLセッション)を使用する必要があると述べています
だからあなたは
でそれを行うことができます$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);
備考:
このプロシージャを、INTを返す1つのINパラメータを持つ関数として書き直すことをお勧めします。