可能重复:
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
答案 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'];