PHP MYSQL : mysqli_free_result

PHP MYSQL : mysqli_free_result

这是我在 Whosebug 中的第一个问题,希望你能帮助我:)

所以这是我的问题:

function find_employer_by_email($email){
  global $connection;
  $q="SELECT * FROM employers WHERE email='{$email}' ";
  $res=mysqli_query($connection, $q);
  if (mysqli_num_rows($res)>0) {
    return $employer = mysqli_fetch_assoc($res);
  }
}

因为我的函数没有返回查询本身而是 returns assoc 数组,我应该怎么做才能释放结果 (mysqli_free_result) 而不会弄乱我的函数?

既然您要将 mysqli_fetch_assoc 的结果分配给 $employer,为什么不让函数的那部分看起来像

$employer = null;
if (mysqli_num_rows($res) > 0) {
    $employer = mysqli_fetch_assoc($res);
$res->close();
return $employer;

这样,您将始终释放结果,return 正确的对象,如果未找到任何结果,则显式 return null。