我有一個存儲過程IsUserPresent喜歡:PHP的mysqli準備語句存儲過程輸出參數
DELIMITER $$
CREATE PROCEDURE IsUserPresent(
in userid varchar (150),
out isPresent bit
)
BEGIN
SET isPresent=0;
SELECT COUNT(*)
INTO isPresent
FROM users_table
WHERE users_table.userid=userid;
END$$
,我想使用的mysqli準備好的聲明從PHP調用它。我正在做下面的代碼片段,但它給了我警告。
$connect=&ConnectDB();
$stmt=$connect->prepare("CALL IsUserPresent(?,?)");
$stmt->bind_param('si',$uid,$userCount);
$stmt->execute();
$toRet = $userCount!=0;
Disconnect($connect);
return $toRet;
警告如下:
Premature end of data (mysqlnd_wireprotocol.c:1112)
Warning: mysqli_stmt::execute(): RSET_HEADER packet 1 bytes shorter than expected
Warning: mysqli_stmt::execute(): Error reading result set's header
上述聲明放入p_isPresent中是什麼?我不認爲我們可以使用外部嵌套查詢返回的結果。謝謝你的提示。 – Talha5389 2014-09-05 13:41:35
'exists()'返回0或1(true或false)。當你將結果放入一個變量時,子查詢不是問題。 – fancyPants 2014-09-05 14:51:35