我有以下 PHP 脚本。我想统计并打印每篇文章的评论。
每篇文章的id可以通过这个来“记忆”:<?php echo $listing['Listing']['listing_id'];?>
(这会返回内容编号)
现在,我有这个脚本:
<?php
$db =& JFactory::getDBO();
$query = "SELECT COUNT(comments) AS totalcount WHERE contentid = ????? ";
$db->setQuery($query);
$count = $db->loadResult();
echo ($count); ?>
我试图在 WHERE 子句中添加这个:
"... WHERE contentid = {$listing['Listing']['listing_id']}"
但是 $count 返回 "0"零。 如何在 WHERE 子句中添加此变量?
提前致谢!
最佳答案
在整数的情况下:
$query = "SELECT
COUNT(comments) AS totalcount
WHERE
contentid = " . ((int) $listing['Listing']['listing_id']);
在字符串的情况下:
$query = "SELECT
COUNT(comments) AS totalcount
WHERE
contentid = " . mysql_real_escape_string($listing['Listing']['listing_id']);
最令人厌烦的就是SQL注入(inject)。这使您的查询安全。显式转换为 int
将确保传递一个 int 值,即使该值是错误的,至少您不会受到任何攻击。
关于WHERE 子句中的 PHP 变量,如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10145913/