在mysql_查询函数中传递PHP变量

在mysql_查询函数中传递PHP变量,php,mysql,Php,Mysql,我想在mysql_查询中传递一个php变量,例如: $tty = '217'; $num_of_comments = mysql_query("SELECT count(*) FROM comments WHERE img_id = '.$tty.'"); $num_of_comments1 = mysql_fetch_array($num_of_comments); $num_of_comments2 = $num_of_comments1[0]; echo $num_of_comm

我想在mysql_查询中传递一个php变量,例如:

$tty = '217';   

$num_of_comments = mysql_query("SELECT count(*) FROM comments WHERE img_id =  '.$tty.'");
$num_of_comments1 = mysql_fetch_array($num_of_comments);
$num_of_comments2 = $num_of_comments1[0];
echo $num_of_comments2 ;
但是,我无法在num_of_comments2中获得所需的值。它在回显时返回0。

这应该可以:

$tty = '217';   

$num_of_comments = mysql_query("SELECT count(*) FROM comments WHERE img_id =  '".$tty."'");
$num_of_comments1 = mysql_fetch_array($num_of_comments);
$num_of_comments2 = $num_of_comments1[0];
echo $num_of_comments2 ;

使用
'“$tty.”
而不是
'。$tty.

颜色编码将显示您的查询是错误的。您也可以通过
echo
ing查询来调试它:

SELECT count(*) FROM comments WHERE img_id =  '.217.'
显然不正确

$tty = '217';   

$sql = mysql_query("SELECT count(*) FROM comments WHERE img_id = ".intval($tty));
$row = mysql_fetch_row($sql);
$number = $row[0];
echo $number;
用于获取值的备选一行程序:

list($number) = mysql_fetch_row(mysql_query("select count(*) from `comments` where `img_id`=".intval($tty)));
基本PHP语法:

$num_of_comments = mysql_query("[[...snip...]]=  '.$tty.'");
您从来没有“关闭”过字符串,所以您试图在字符串中执行PHP连接,这是行不通的。您的查询字符串实际上是

WHERE imd_id = '.217.'
                ^---^--- note the concatentation operators
对于
带引号的字符串,不需要连接:

$num_of_comments = mysql_query([[..snip..] =  '$tty'");
                                              ^^^^^^^---note: no dots

就是您所需要的。

使用PDO或mysqli和准备好的语句:
SELECT count(*)从img_id=?
的评论来看,你完全误用了mysql函数。你用什么教程来教你?@Jeroien:你能提供一些关于如何使用PDO/mysqli函数来解决这个问题的更多见解吗?我如何编写相同的代码?你应该从一个教程或php手册开始,那里有很多例子。有一个如果你想访问Bobby Tables,你需要…如果你想发布你自己的
享受你的服务器pwn3d
评论;-)我如何回显列表($number),即我从sql查询中得到的计数?这仍然返回0