0
我正在將SQL從SQL轉換爲PDO,並且一切進展順利,直到此聲明爲止。聲明適用於SQL,但不適用於PDO
我的SQL做它應該和不輸出消息「此用戶沒有私人圖像」。但出於某種原因,當轉換到PDO時,不應該顯示相同的消息。
任何想法?
原始SQL:
$result = mysql_query("SELECT * FROM tbl_private_photos WHERE profile = $usernum AND photo_deleted != 'Yes' LIMIT 1");
if (mysql_num_rows($result)!==1) { die("This user has no private images");}
我PDO:
$sql = "SELECT * FROM tbl_private_photos WHERE profile = :usernum AND photo_deleted != 'Yes' LIMIT 1";
$q = $conn->prepare($sql); // the default way of PDO to manage errors is quite the same as `or die()` so no need for that
$q->bindValue(':usernum',$usernum,PDO::PARAM_INT);
$q->execute();
if($r = $q->fetch(PDO::FETCH_ASSOC)!==1)
{
die("This user has no private images");
}
當然,它仍然不過工作,因爲我已經使用「限制1」,以確保它的工作。是否有1個或10個結果,它應該堅持1 –
@ElaineAdams!==與整數1比較,沒有鑄造或類似的東西。 'fetch'不返回整數。然後你將它分配給$ r,這可能會永遠評估爲'true',如果你認爲我的更新是 – Ray
@ElaineAdams,看看它是否清晰 – Ray