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