PHP MySQL查询返回NULL
我有一个如下所示的MySQL表:
index | tag | posts
-------------------------
1 | cats | 9,10
2 | a cat | 9,10
3 | kitty | 9,10
4 | meow | 9,10
我试图只返回匹配搜索查询的行。 我使用简单的?search=cats
传递了搜索参数。 这是我正在使用的PHP:
$search = $_GET['search'];
$query = mysql_query("SELECT * FROM tags WHERE tag = '$search'");
echo(mysql_num_rows($query));
$result = mysql_fetch_array($query);
$print = $result['posts'];
echo($print);
然而, mysql_num_rows($query)
输出0, $print
返回NULL。 我可以用($print == "")
来检查它,它的计算结果为TRUE, mysql_num_rows($query)
返回4.我试图设置搜索查询的东西不在表中,并且它按照预期返回FALSE。 我也尝试删除WHERE tag = '$search'
并且它返回表格。
有我忽略的东西吗?
编辑
接受了每个人的建议,我现在使用的代码是:
$search = mysql_real_escape_string($_GET['search']);
var_dump($search); //prints string(4) "cats" just like it should
$queryText = "SELECT * FROM tags WHERE tag = '%".$search."%'";
echo($queryText); //SELECT * FROM tags WHERE tag = '%cats%'
$query = mysql_query($queryText) or die(mysql_error()); //no error
$rows = mysql_num_rows($query); //this returns 0 and I know it should match 1 row
echo('rows: '.$rows);
$result = mysql_fetch_array($query);
$print = $result['posts'];
echo($print); //empty
仍然有同样的问题。 如果不匹配,则mysql_query
将重新调用NULL而不是行或为FALSE。
(将来我会使用mysqli
API,但是我想用mysql
来完成这个项目。感谢您的建议和建议)
在参考上述编辑之后,确定如下,这里是解决方案
使用通配符“%”时使用“LIKE”而不是“=”
所以你现在的查询应该是
$queryText = "SELECT * FROM tags WHERE tag LIKE '%" . $search . "%'";
[我在本地系统上创建了完全相同的数据库,并运行相同的代码,完成上述更改后,它按预期运行]
现在试试这个代码。
记住,当你想用PHP调试某些东西时,更快的方式是var_dump不回显。 此外,您应该避免使用mysql_api,因为它们已被弃用,请在PHP.net上使用PDO代替PDO
var_dump($_GET); // Just for debuggin if as something
$search = $_GET['search'];
$query = mysql_query("SELECT * FROM tags WHERE tag = '".mysql_real_escape_string($search)."'");
// echo(mysql_num_rows($query));
$result = mysql_fetch_array($query);
var_dump($result);
//$print = $result['posts'];
//echo($print);
$search = $_GET['search'];
echo $select_query="SELECT * FROM tags WHERE tag = '".mysql_real_escape_string($search)."'";
$query = mysql_query($select_query);
echo(mysql_num_rows($query));
while($result = mysql_fetch_array($query))
{
print_r($result);
}
链接地址: http://www.djcxy.com/p/58869.html