我已經編寫了一個查詢來返回一篇文章的所有評論,從該文章中排除阻止的用戶。我已經在phpmyadmin中測試了這個查詢,並且給出了給定的帖子(其中1個用戶被阻止)的4/5可能的評論。PHP:PDO查詢不返回結果,但相同的查詢返回4結果在phpmyadmin?
查詢看起來像:
$query = "SELECT ent.Entity_Id, ent.Profile_Pic_Url, ent.First_Name, ent.Last_Name, ent.Last_CheckIn_Place, comments.Content
FROM checkin_comments AS comments
JOIN entity AS ent
ON comments.Entity_Id = ent.Entity_Id
LEFT JOIN friends AS f
ON ent.Entity_Id = :entityId
WHERE comments.Chk_Id = :checkInId
AND f.Category != 4
GROUP BY comments.Comment_Id
";
// Bind the parameters to the query
$data = Array(":checkInId" => (int)$checkInId, ":entityId" => (int)$userId);
如果我運行值1726
爲checkinId和1517
爲用戶id我得到預期的結果對phpMyAdmin的查詢,但在PHP中,我得到0的結果。我用var_dump打印數據的內容,它顯示爲:
array(2) {
[":checkInId"]=>
int(1726)
[":entityId"]=>
int(1517)
}
爲什麼我在PHP中遇到不同的結果?我的所有其他查詢如果我換了綁定變量的值數量的查詢工作正常,這使我相信這是與PDO值綁定到查詢問題運行良好
編輯。當我執行綁定我用我的PDO包裝類,其執行以下方法:
public function fetchAll($query, $data = null)
{
$stmt = $this->prepareQuery($query, $data);
return $stmt->fetchAll();
}
private function prepareQuery($query, $data = null)
{
$stmt = $this->connection->prepare($query);
$stmt->execute($data);
return $stmt;
}
這是否尖叫答案PDO的任何有經驗的用戶?
你寫了:checkinId的值爲1726,userId的值爲1527 **,但綁定** 1517 ** – venca
你在哪裏準備並執行這個查詢?僅僅分配給'$ data'是不夠的。 – tadman
我寫了一個簡單的pdo包裝。我知道你會認爲這是必要的問題,但我有大約20其他查詢運行相同的包裝,他們返回就好。 – Alex