对象中的mysqli_fetch_assoc

问题描述 投票:-1回答:2

如何在对象中使用数组或使用向右箭头。对不起,我还是个大三学生

这是功能和工作

 function check_level($id) {

  global $connect;
  $query  = "SELECT level FROM s_user WHERE id='$id'";
  $result = $connect->query($query);
  $level  = mysqli_fetch_assoc($result) ['level'];

  return $level;
  }

我尝试这样但是错误,idk如何在对象中进行数组

function check_level($id) {

  global $connect;
  $query  = "SELECT level FROM s_user WHERE id='$id'";
  $result = $connect->query($query);
  $level  = $result->fetch_object(['level']);



  return $level;
  }

你能帮助我吗 ?谢谢。

php sql mysqli
2个回答
0
投票

你可能已经解决了。但无论如何,这是函数,它在返回值之前检查是否有结果。

如果没有检索到记录,则此函数返回NULL。

function check_level($id) {
  global $connect;
  $level = NULL;

  $stmt = $connect->prepare("SELECT level FROM s_user WHERE id= ?");
  $stmt->bind_param("i", $id);
  $stmt->execute();
  $result = $stmt->get_result();

  if($result){
      if($result->num_rows > 0){
          $row = $result->fetch_object();
          $level = $row->level; // this
      }
  }
  else {
      echo "MySQL Error: ".$connect->error;
  }
  return $level;
}

该函数还使用预准备语句来防止sql注入攻击。


0
投票

阅读有关sql注入的更多信息。您必须准备并绑定参数作为上面的代码。 $ stmt只是“声明”或变量。

© www.soinside.com 2019 - 2024. All rights reserved.