Php mysql查询选择无法返回单个值

Php mysql查询选择无法返回单个值,php,mysql,row,Php,Mysql,Row,在写这篇文章之前,我寻找了一个答案,但没有找到任何答案,如果我错过了,请随意发布一个链接 我试图从mysql表的一行中获取值。下面我使用的查询不返回任何内容;mysql_num_行的回音始终为零。我知道WHERE中使用的title变量有效,数据库已连接,等等。。提前谢谢 $title = $_REQUEST["title"]; $query = mysql_query("SELECT * FROM links WHERE title = '$title'"); if(!$query) {

在写这篇文章之前,我寻找了一个答案,但没有找到任何答案,如果我错过了,请随意发布一个链接

我试图从mysql表的一行中获取值。下面我使用的查询不返回任何内容;mysql_num_行的回音始终为零。我知道WHERE中使用的title变量有效,数据库已连接,等等。。提前谢谢

$title = $_REQUEST["title"];
$query = mysql_query("SELECT * FROM links WHERE title = '$title'");
if(!$query) {
    die ("Error: " . mysql_error());
}
echo mysql_num_rows($query);
$row = mysql_fetch_row($query);//also tried mysql_fetch_array
$link = $row['link'];
$type = $row['type'];
$user = $row['user'];
$date = $row['date'];
$rating = $row['rating'];
$info = $row['info'];

通常要做的一件事是打印出sql查询,以确保它符合您的期望

$sqlquery = "SELECT * FROM links WHERE title='".$title."'";
$query = mysql_query($sqlquery);
echo $sqlquery; 

另外,正如已经提到的。。。您很容易受到SQL注入攻击

通常要做的一件事是打印出sql查询,以确保它符合您的期望

$sqlquery = "SELECT * FROM links WHERE title='".$title."'";
$query = mysql_query($sqlquery);
echo $sqlquery; 
另外,正如已经提到的。。。您很容易受到SQL注入攻击

试试:

$title = mysql_real_escape_string($_REQUEST["title"]);
$query = mysql_query("SELECT * FROM links WHERE title LIKE '$title'");
echo $query // run it in mysql prompt to check if there are any results first.
if(!$query) {
    die ("Error: " . mysql_error());
}
echo mysql_num_rows($query);
$row = mysql_fetch_row($query);//also tried mysql_fetch_array
$link = $row['link'];
$type = $row['type'];
$user = $row['user'];
$date = $row['date'];
$rating = $row['rating'];
$info = $row['info'];
尝试:

$title = mysql_real_escape_string($_REQUEST["title"]);
$query = mysql_query("SELECT * FROM links WHERE title LIKE '$title'");
echo $query // run it in mysql prompt to check if there are any results first.
if(!$query) {
    die ("Error: " . mysql_error());
}
echo mysql_num_rows($query);
$row = mysql_fetch_row($query);//also tried mysql_fetch_array
$link = $row['link'];
$type = $row['type'];
$user = $row['user'];
$date = $row['date'];
$rating = $row['rating'];
$info = $row['info'];

如果mysql_num_rows返回零,则表示您的查询可能没有从数据库中选择任何内容。您必须检查sql查询是否实际选择了任何内容。检查$title变量的值,并尝试直接对数据库执行查询


您还容易受到sql注入的攻击。始终筛选用户输入。您可以使用mysql\u real\u escape\u string和htmlspecialchars来实现此目的。

如果mysql\u num\u rows返回零,则表示您的查询可能没有从数据库中选择任何内容。您必须检查sql查询是否实际选择了任何内容。检查$title变量的值,并尝试直接对数据库执行查询


您还容易受到sql注入的攻击。始终筛选用户输入。您可以使用mysql\u real\u escape\u字符串和htmlspecialchars来实现这一点。

尝试在没有where的情况下获取值,如下所示:

$query = mysql_query("SELECT * FROM links") or die(mysql_error());
如果有错误,它应该提示您错误


很多人已经在说了,但是尝试清理请求参数^ ^

尝试在没有where的情况下获取值,就像下面这样:

$query = mysql_query("SELECT * FROM links") or die(mysql_error());
如果有错误,它应该提示您错误

很多人已经在说了,但是尝试清理您应该使用的请求参数 而$row=mysql\u fetch\u row$query{…}并使用mysql\u real\u escape\u字符串来避免sql注入。并且不要在mysql_num_行前面使用echo命令。甚至我也认为执行脚本的剩余部分不需要获得行数

另外,我在手机上,所以无法发布脚本。

您应该使用 而$row=mysql\u fetch\u row$query{…}并使用mysql\u real\u escape\u字符串来避免sql注入。并且不要在mysql_num_行前面使用echo命令。甚至我也认为执行脚本的剩余部分不需要获得行数


p.s我在手机上,所以我无法发布脚本。

您的查询容易受到SQL注入的影响,仅供参考。出于对所有神圣事物的热爱,请不要将请求参数直接放入数据库查询中。如果你这样做,你只是在乞求对你的web应用进行SQL注入攻击。那么你知道你的SQL正在返回什么吗?首先尝试使用just SELECT*FROM links进行测试。您的查询容易受到SQL注入的攻击,仅供参考。出于对所有神圣内容的热爱,请不要将请求参数直接放入数据库查询中。如果你这样做,你只是在乞求对你的web应用进行SQL注入攻击。那么你知道你的SQL正在返回什么吗?尝试先从链接中选择*进行测试。