mysql_free_result()期望参数1是资源

时间:2013-01-25 18:12:49

标签: php

我将我的android应用程序中的数据发送到localhost中的mySQL并且我收到警告(警告:mysql_free_result()期望参数1为资源,第17行的C:\ xampp \ htdocs \ datatest.php中给出布尔值)< / p>

尽管有警告我仍然可以将数据插入数据库。

我想知道可以忽略这个或者我该如何解决这个问题?

我尝试了各种论坛和网站,没有解决我的问题。

<?php 
$dbcnx = mysql_connect("localhost", "root", "");
$db = "agentdatabase";
mysql_select_db($db, $dbcnx);
$user_id=$_POST['username'];
$passwd=$_POST['password'];
$query = "INSERT INTO agentable (username,password) VALUES ('".$user_id."','".$passwd."')";
echo $query;

$result = mysql_query($query) or die ("<b>Query failed:</b> " . mysql_error());

if($result){
    echo '<br />','pass';
}
else echo mysql_error();

mysql_free_result($result);
mysql_close($dbcnx);
?>

5 个答案:

答案 0 :(得分:11)

由于can't free a boolean,您无法释放INSERT查询的结果。

答案 1 :(得分:2)

如果您担心返回大型结果集的查询使用了多少内存,则只需要调用

mysql_free_result()

不推荐使用mysql扩展,而是使用MySQLi或PDO_MySQL。

mysql_query()仅返回SELECT,SHOW,EXPLAIN和DESCRIBE查询的资源。

答案 2 :(得分:2)

旁注,不推荐使用MySQL PHP扩展。最好使用MySQLiPDO

答案 3 :(得分:1)

这是我测试的另一个可能的原因,并且能够以其他两种不同方式重现此错误,这里没有提及。

1)您的SQL语法错误,看起来像这样(注意 field3 不正确的额外逗号

“从myTable中选择field1,field2, field3,”;

2)您的SQL包含重复字段,如下所示:

“从myTable中选择field1, field2 field2 ”;

在这两种情况下,我收到了消息,它显示在不同的功能中:

“警告:mysql_result()期望参数1为资源,布尔值为”

“警告:mysql_free_result()要求参数1为资源,布尔值为”

“警告:mysql_fetch_assoc()要求参数1为资源,布尔值为”

答案 4 :(得分:0)

使用此:

if (is_bool($result) === false) {
    mysql_free_result($result);
}