繁体   English   中英

Mysql Count问题与SQL语句中的变量-php

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM