在MySql中获取资源ID#3错误

时间:2013-07-02 04:16:16

标签: php mysql database echo

我运行了这段代码,我得到了一个资源ID#3错误,它应该显示完整的电影表。

mysql_connect("localhost", "root", "password") or die(mysql_error()); 
mysql_select_db("treehouse_movie_db") or die(mysql_error()); 
$data = mysql_query("SELECT * FROM movies") 
or die(mysql_error()); 
echo $data;

3 个答案:

答案 0 :(得分:9)

这不是error您的查询正在执行,并且您正在从mysql_query()获取适当的资源,因为它应该被返回。

要获得回复,您必须使用mysql_fetch_array()mysql_fetch_assoc()

mysql_connect("localhost", "root", "password") or die(mysql_error()); 
mysql_select_db("treehouse_movie_db") or die(mysql_error()); 
$data = mysql_query("SELECT * FROM movies") 
or die(mysql_error()); 

while($row = mysql_fetch_assoc($data))
{
   print_r($row);
}

建议:不再维护mysql_ *。尝试切换到mysqli_*PDO

答案 1 :(得分:0)

你没有收到错误,MySQL API只是按照你的要求去做:回显$data的内容,这是一个MySQL查询资源。扩展代码以实际检索结果:

while($row = mysql_fetch_object($data))
    var_dump($row);

你会看到输出。

请注意mysql_* API is deprecated since PHP 5.5 by the way

答案 2 :(得分:0)

Resourse id #3 表示 $data 变量用于打开资源,这不是错误。
如果您要打开另一个资源(例如文件),请使用:

$var=fopen('myfile','a+');
echo $var;

结果是您会得到 Resourse id $4

所以为了得到你想要的输出,你需要使用一个循环。
它在 here 中进行了描述。