首頁  >  文章  >  後端開發  >  Warning</b>: mysql_free_result(): supplied argument is not a valid MySQL result

Warning</b>: mysql_free_result(): supplied argument is not a valid MySQL result

WBOY
WBOY原創
2016-06-23 13:38:381019瀏覽

这是什么错?

<?php	header('content-type:application/json;charset=utf8');	$host = '127.0.0.1:3307';	$root = 'root';	$pwd = 'apeg1996';	$con = mysql_connect($host,$root,$pwd);	if($con == false){		echo "连接数据库失败!"; 	}else{ 		echo "连接数据库成功!";	}	$sql = "select * from user";	function execute_data($sql){		$result = mysql_query($sql);		mysql_free_result($result);		mysql_close($conn);		return $result;	}	echo execute_data($sql);?>


已显示连接成功,但是报这个错。。
连接数据库成功!<br /><b>Warning</b>:  mysql_free_result(): supplied argument is not a valid MySQL result resource in <b>F:\environment\WAMP\wamp5\wamp\wamp\www\test\sql.php</b> on line <b>17</b><br /><br /><b>Warning</b>:  mysql_close(): supplied argument is not a valid MySQL-Link resource in <b>F:\environment\WAMP\wamp5\wamp\wamp\www\test\sql.php</b> on line <b>18</b><br />


回复讨论(解决方案)

$result = mysql_query($sql);
改为
$result = @mysql_query($sql) or die(mysql_error());

$result = mysql_query($sql);
改为
$result = @mysql_query($sql) or die(mysql_error());



网页上显示的是No database selected, 这个是没有找到这个数据库吗?
但是我用的是Navicat 8 for mysql 这个视图工具。
我在这里面创建的数据库,并简历了表。 我应该怎么去查询这个数据库里的表呢?

你只连接了数据库系统,但没有选择待操作的数据库
mysql_select_db('库名');
否则怎么知道你在查询那个库中的 user 表呢?

另外,你的 mysql_close($conn) 在函数中,而 $conn 并未传到函数中。
所以会有第2条错误

版主回答的完美


$result = mysql_query($sql);
改为
$result = @mysql_query($sql) or die(mysql_error());



网页上显示的是No database selected, 这个是没有找到这个数据库吗?
但是我用的是Navicat 8 for mysql 这个视图工具。
我在这里面创建的数据库,并简历了表。 我应该怎么去查询这个数据库里的表呢?

你在mysql_query之前没有mysql_select_db,mysql不知道你需要在哪个db中执行查询操作。

在创建连接后,加一句
 @mysql_select_db(' 这里填写数据库名',$conn) or die(mysql_error());

<?php    header('content-type:application/json;charset=utf8');    $host = '127.0.0.1:3307';    $root = 'root';    $pwd = 'apeg1996';     $con = mysql_connect($host,$root,$pwd);    if($con == false){        echo "连接数据库失败!";     }else{         echo "连接数据库成功!";    }     @mysql_select_db('这里填写数据库名',$conn) or die(mysql_error());	 // 加入这句    $sql = "select * from user";    function execute_data($sql, $conn){ // 加入$conn 参数        $result = mysql_query($sql);        mysql_free_result($result);        mysql_close($conn);        return $result;    }    echo execute_data($sql, $conn);?>
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn