[英]Mysql Count issue with variable in sql statement - php
如果我在也有COUNT的php SQL语句中使用变量,则会收到错误消息。 如果使用文字数字而不是变量,则可以正常工作。 在下面的代码中,您可以看到在哪里设置变量。 它设置为“ test2”,即下面的第一行代码。
我究竟做错了什么?
//$tag_text_ipb hardcoded here for testing
$tag_text_ipb="test2";
//when I replace $tag_text_ipb with the literal 'test2' in SQL below, it works fine.
$query_total_tags = "SELECT COUNT(1) FROM core_tags WHERE tag_meta_app = 'downloads' AND tag_text = $tag_text_ipb";
$dlresult_total_tags = mysql_query( $query_total_tags );
//Mysql reports an error here (see below for the error text) ONLY when I use the $tag_text_ipb variable in the SQL statement.
$tag_count= mysql_result($dlresult_total_tags,$k[COUNT(1)]);
错误是:警告:mysql_result():/ home / ipboard / admin / ...中提供的参数不是有效的MySQL结果资源:第3884行中的eval()代码
如果我在SQL语句中使用文字而不是$ tag_text_ipb,此错误将消失并且一切正常。
您在SQL中缺少标记文字var周围的引号。 应该是这样的:
$query_total_tags = "SELECT COUNT(1) FROM core_tags WHERE tag_meta_app = 'downloads' AND tag_text = '".$tag_text_ipb."'";
$query_total_tags = "SELECT COUNT(1) ... AND tag_text = '$tag_text_ipb'";
^ ^
您需要用引号引起来的文本值,否则查询将格式错误。 请阅读有关SQL注入的信息,看看是否可以使用绑定参数而不是原始查询。
尝试这个
$query_total_tags = "SELECT COUNT(1) FROM core_tags WHERE tag_meta_app = 'downloads' AND tag_text = '$tag_text_ipb'";
(大约$ tag_text_ipb单qoutes)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.