我正在尝试创建一个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 - 我之前发布了一个类似的问题,但说得不好,得到的结果没有解决问题
答案 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' ";