[英]Cant get stored procedure resultset via PDO PHP
我似乎無法使用PDO(PHP)從存儲過程(MYSQL)獲得任何輸出。
存儲過程:
CREATE PROCEDURE getUserId(serviceId VARCHAR(64), serviceInput VARCHAR(32))
BEGIN
SELECT id FROM users WHERE servid = serviceId AND service = serviceInput;
END
PHP代碼:
$mysqlConn = mysqlPDOLogin();
$stmt = $mysqlConn->prepare("CALL getUserId(?,?);");
$stmt->bindParam(1, $USERID);
$stmt->bindParam(2, $USERPROVIDER);
$stmt->execute();
$returned_a = $stmt->fetch();
echo $returned_a['id'];
它什么也沒有收回。 我已經從存儲過程中復制了基本選擇代碼,並直接在PHP代碼中使用了它,並且可以正常工作,但是無法通過存儲過程使其工作。
任何幫助,將不勝感激...
您沒有進行任何明顯的錯誤檢查。 根據PDO所處的錯誤報告模式,Prepare(),bindParam()和execute()都會通過返回false或引發異常來提醒您注意錯誤。
我將假設您處於“返回假”模式。
您需要檢查$ stmt是PDOStatement對象,bindParam語句沒有返回false,而execute沒有返回false。 如果它們中的任何一個都做了,那么您需要使用errorCode()和errorInfo()來找出問題所在。
另外,對我來說,使用存儲過程進行基本的簡單查詢似乎有些過分。 為什么不僅僅執行以下操作?
$stmt = mysqlConn->prepare ('SELECT id FROM users WHERE servid = ? AND service = ?');
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.