我在写这篇文章之前找了一个答案但没有找到任何答案,但如果我错过了,可以随意发布一个链接。
我试图从我的mysql表的一行中获取值。我在下面使用的查询没有返回任何内容; mysql_num_rows的回显总是为零。我知道WHERE中使用的标题变量是有效的,数据库是连接的等等。感谢先进。
$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'];
答案 0 :(得分:1)
尝试:
$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'];
答案 1 :(得分:1)
$title = $_REQUEST["title"];
$query = mysql_query("SELECT * FROM links WHERE title = '$title'");
if(!$query) {
die ("Error: " . mysql_error());
}
echo mysql_num_rows($query);
while($row = mysql_fetch_row($query))
{
$link = $row['link'];
$type = $row['type'];
$user = $row['user'];
$date = $row['date'];
$rating = $row['rating'];
$info = $row['info'];
}
答案 2 :(得分:1)
如果mysql_num_rows返回零,则表示您的查询可能没有从数据库中选择任何内容。您必须检查您的SQL查询是否正在选择任何内容。检查$ title变量的值,并尝试直接将查询排除在数据库之外。
您也容易受到 sql注入的攻击。始终过滤用户输入。你可以使用mysql_real_escape_string和htmlspecialchars。
答案 3 :(得分:1)
尝试获取没有像这样的地方的值:
$query = mysql_query("SELECT * FROM links") or die(mysql_error());
如果有错误,应该提示您错误。
很多人已经说过但是尝试清理请求参数^ _ ^
答案 4 :(得分:0)
一个常见的事情是打印出你的SQL查询,以确保它符合你的期望。
$sqlquery = "SELECT * FROM links WHERE title='".$title."'";
$query = mysql_query($sqlquery);
echo $sqlquery;
另外,正如已经提到的那样......你很容易受到SQL注入攻击。
答案 5 :(得分:0)
P.s我在手机上,所以我无法发布脚本。