gpt4 book ai didi

php - mysql_result 已定义,但 mysql_free_result 警告它需要资源

转载 作者:行者123 更新时间:2023-11-29 08:55:10 25 4
gpt4 key购买 nike

此代码在释放结果之前测试是否有结果:

$result = mysql_query($query) or die("$query\n\n" . mysql_error());
$id = mysql_insert_id();
if ($result) { mysql_free_result($result); }

但它给出了这个警告:

mysql_free_result() expects parameter 1 to be resource, boolean given in /foo/bar/etc.php

我做错了什么?

最佳答案

由于您调用了mysql_insert_id(),我假设您执行了INSERT查询而不是SELECT。在这种情况下(与不返回行集的其他情况一样),$result 只是成功时的 bool 值 TRUE,而不是结果资源。没有必要释放它,并且确实尝试释放它会导致警告。

From the documentation on mysql_query():

For SELECT, SHOW, DESCRIBE, EXPLAIN and other statements returning resultset, mysql_query() returns a resource on success, or FALSE on error.

For other type of SQL statements, INSERT, UPDATE, DELETE, DROP, etc, mysql_query() returns TRUE on success or FALSE on error.

但是,这并不意味着您不应该对其进行错误检查。

$result = mysql_query($query);
if ($result) {
$id = mysql_insert_id();
}
else echo mysql_error();

关于php - mysql_result 已定义,但 mysql_free_result 警告它需要资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10126833/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com