从我的学习中我了解到,在操作/使用查询数据之后,应该释放结果集数据。我试图在以下代码上下文中使用mysqli_result::free
pdo:
if ($result)
{ $change = $result[0][9];
$change = $change+1;
$sql='UPDATE users SET visits = :visit WHERE username = :username';
$q=$dbh->prepare($sql);
$q->bindValue(':username',$username,PDO::PARAM_STR);
$q->bindValue(':visit',$change,PDO::PARAM_INT);
$q->execute();
// initiate SESSION and Set USER SESSION Variables through the --session_handler.php
require ('./includes/session_handler.php');
//Free the Query Result set to free memory on the database handler
$result->free();
// direct registered users to MEMBER_ZONE.php for registered users interface
header('Location: member_zone.php');
exit();
}
我收到的消息是: 致命错误:在...中调用未定义的方法PDOStatement :: free()
我在http://php.net/manual/en/mysqli-result.free.php以及Google上进行了研究,没有找到示例代码来进一步阐明其应用。
在此网站上的示例:mysqli_result::free increase php memory usage
这里令人困惑:在此代码中是否应该释放$row
?
这里Are mysqli_result::free and mysqli_stmt::free_result the same?
这里有两种形式的free_result()
和free()
一起使用。
我似乎无法找到我的错误或明确的用法示例。我很感激任何意见。
答案 0 :(得分:0)
似乎我在结果上使用$q->free()
,结果从未出现,因为我正在更新数据库,而不是请求结果。语法似乎正确使用。这是我的使用顺序,我认为这是错误的。