1

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

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

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

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

<?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);
?>
4

5 回答 5

11

您无法释放INSERT查询的结果,因为您无法释放 boolean

于 2013-01-25T18:14:47.510 回答
2

mysql_free_result()仅当您担心返回大型结果集的查询使用了多少内存时才需要调用。

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

mysql_query() 只为 SELECT、SHOW、EXPLAIN 和 DESCRIBE 查询返回资源。

于 2013-01-25T18:17:39.980 回答
2

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

于 2013-01-25T18:17:59.837 回答
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 是资源,给定的布尔值”

于 2014-10-20T19:49:11.917 回答
0

用这个:

if (is_bool($result) === false) {
    mysql_free_result($result);
}
于 2019-06-02T22:34:51.933 回答