PHP致命错误:调用未定义的方法resultSet :: free()
我试图获得一个基于旧的基于PHP的应用程序,autonomous lan party工作的功能。它基于php4,但它确实符合我希望在php5服务器上执行的操作(它也仅用于Intranet环境)。我添加了一个会计附加from here。我可以理解PHP,但仍然有些生疏。PHP致命错误:调用未定义的方法resultSet :: free()
下面的代码一个小样本,我坚持了...
<FORM ACTION="<?php echo $_SERVER['PHP_SELF']; ?>" METHOD="post" NAME="accounting" ID="accounting">
<strong>user: </strong><br>
<SELECT NAME="userid[]" SIZE="5" class="formcolors" TABINDEX="1" MULTIPLE>
<?php
$data = $dbc->query('SELECT username,userid FROM users ORDER BY username');
while ($row = $data->fetchRow()) {
$option = '
<OPTION VALUE="%s" class="formcolors">%s</OPTION>';
printf($option, $row['userid'], $row['username']);
}
$data->free();
unset($option, $data);
?>
</SELECT>
的问题是,一旦达到TE $data->free();
线,脚本停止执行,并将该主题中提到的错误。如果我注释掉(两次,也有类似的线),脚本运行,但一旦我提交的数据我得到另一个错误日志文件...
PHP Warning: mysql_escape_string() expects parameter 1 to be string, array given
我认为错误是因为我评论出$data->free();
,所以它不能得到正确的结果。
我已经从pastebin here上的文件中粘贴了完整的代码(不想用其他所有代码填充此页面)。
任何帮助或援助将不胜感激。应用程序中的其他一切按预期工作。
如果我理解正确,$data
是一个mysql结果。
要从内存中释放结果,请尝试使用mysqli_free_result()
来代替。
$data = $dbc->query('SELECT username,userid FROM users ORDER BY username');
while ($row = $data->fetchRow()) {
$option = '
<OPTION VALUE="%s" class="formcolors">%s</OPTION>';
printf($option, $row['userid'], $row['username']);
}
mysqli_free_result($data->free());
unset($option, $data);
谢谢你的建议。正确的,'$ data'是一个mysql结果。我已经按照建议尝试了'mysql_free_result()',但遇到了同样的问题。谢谢你,我已经给了我更多的东西了。 – user1487901
你得到一个错误,指出它找不到函数,或者你得到'mysql_escape_string()'错误? – jurgemaister
对不起,我得到'调用未定义的方法resultset :: free()'原始错误' – user1487901
是'$ data' *真*一个类实例吗?如果是这样,你可能想要提供该类的代码。另外,从哪里调用'mysql_escape_string()'? – Havelock