0
我有一個方法,稱爲getPerso返回一個數組與我的成員的所有信息。這裏是方法:我的方法不起作用,不返回數組
public function getPerso($id)
{
if(is_int($id))
{
$req = $this->_db->prepare('SELECT * FROM personnages WHERE id = :id');
$req->execute(array(
'id' => $id));
$donnee = $req->fetch();
$req->closeCursor();
return $donnee;
}
}
它只需要一個int作爲參數。我使用$_SESSION['id']
,其中包含登錄參數的成員的ID。但是,當我執行此代碼時:
$donnee = $manager->getPerso($_SESSION['id']);
var_dump($donnee, $_SESSION['id']);
我的$ donnee變量爲空。這就是我從獲得的var_dump:
空字符串(1)「4」
我的$ donnee變量應該包含一個數組,其成員的所有信息。希望有人有一個解決方案。
對':id'沒有匹配的行,或者您沒有看到錯誤。默認情況下,PDO錯誤默默無聞。你是否設置了連接來引發異常? '$ this - > _ db-> setAttribute(PDO :: ATTR_ERRMODE,PDO :: ERRMODE_EXCEPTION);''確保在prepare()失敗時它會拋出異常。否則,你可能沒有匹配的行。 – 2014-08-27 19:29:26
你簡直假設你的查詢成功了。除非您明確啓用異常,否則PDO在失敗時返回布爾值false。所以無論你的 - >準備失敗, - > execute()失敗,或者 - > fetch()失敗。 – 2014-08-27 19:33:28
'$ req-> execute(array(':id'=> $ id));' – 2014-08-27 19:34:00