mysql_fetch_assoc很奇怪

时间:2012-02-11 23:44:47

标签: php mysql

  

可能重复:
  Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result

好的,所以这是我的代码。

<?php

include 'connect.php';


$id = addslashes($_REQUEST['id']);


$image = "SELECT * FROM images WHERE id=$id";
$result = mysql_query($image);
$imagearray = mysql_fetch_assoc($result);
$realimage = $imagearray['image'];

header("Content-type: image/jpeg");

echo $realimage;

?>

页面使用GET来获取id但是它给了我这个错误:

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /home/a6289454/public_html/get.php on line 9

4 个答案:

答案 0 :(得分:3)

var_dump(mysql_error());将帮助您找到错误消息。但最有可能的是你需要引用:

$image = "SELECT * FROM `images` WHERE `id`='".$id."'";

答案 1 :(得分:0)

我认为问题可能出在addslashes()中,请尝试使用mysql_real_escape_string()。

答案 2 :(得分:0)

为什么要向$_REQUEST['id']添加斜杠?它应该是一个整数

试试这段代码:

if(is_numeric($_REQUEST['id'])){

    $q = "SELECT * FROM images WHERE id = " . $id; // Don't put variables in strings!
    $rs= mysql_query($q) or die("There is an error in the query:<br>" . $q . "<br><br>The error is: ". mysql_error()); // Throw and error if there is one.
    $result = mysql_fetch_assoc($rs);

} else { die('Not a valid ID'); }

另外,对于良好做法,请使用require_once('connect.php');而不是include 'connect.php';

答案 3 :(得分:0)

 $image = "SELECT * FROM images WHERE id=$id";
 $result = mysql_query($image) or die(mysql_error());

试试

另外,对于你的$ id使用类型转换,它是解决一个简单问题的简单方法

 $id = (int) $_REQUEST['id'];