尝试选择单行时,mysql select query不起作用

时间:2012-03-16 04:02:33

标签: php mysql row

我正在尝试创建一个php脚本,通过使用WHERE子句从我的表中选择一行。问题是mysql查询没有返回任何行。我知道变量是正确的(用户提交)。

$title = mysql_real_escape_string($_REQUEST["title"]);
$query = mysql_query("SELECT * FROM links WHERE title ='$title'", $con) 
or die ("Error: " . mysql_error());

我正在寻找可以解决我的问题的任何想法。我知道mysql正常工作,因为其他查询执行正常。标题变量是正确的;它是从另一个页面上的mysql传递的。谢谢你提前。

ps - 我之前发布了一个类似的问题,但说得不好,得到的结果没有解决问题

5 个答案:

答案 0 :(得分:0)

试试这个:

 $query = mysql_query("SELECT * FROM links WHERE title ='$title' limit 1") 
or die ("Error: " . mysql_error());

答案 1 :(得分:0)

抱歉,我是新来的,我找不到对原始问题发表评论的按钮。

但是你提到请求是用户提交的。他们是在打字还是从选择框或单选按钮中选择?我问,因为请求的标题是否存在于DB中?

无论如何,如果您使用以下内容,您的结果是什么?:

$query = mysql_query("SELECT * FROM links WHERE title LIKE '%".$title."%'")
or die ("Error: " . mysql_error());

如果没有,那么数据库肯定没有匹配。

答案 2 :(得分:0)

尝试此查询

mysql_query("SELECT * FROM links WHERE title like '$title%'", $con) 

答案 3 :(得分:0)

尝试此查询:

$query = mysql_query("SELECT * FROM links WHERE title LIKE '%{$title}%'");

或者这可以检查格式:

$sql = sprintf("SELECT * FROM links WHERE title LIKE '%%%s%%'", $title);
$query = mysql_query($sql);

答案 4 :(得分:0)

在我的例子中,变量名前后都有空格,就像这样

$query = "select * from user where user_name = ' $user_name ' ";

这导致将 userName 与数据库中不存在的 [empty_space userName empty_space ] 进行比较。

你的查询应该是这样的

$query = "select * from user where user_name = '$user_name' ";