对象中的mysqli_fetch_assoc

时间:2018-05-06 07:15:33

标签: php sql mysqli

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

这是功能和工作

 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;
  }
你可以帮帮我吗?感谢。

2 个答案:

答案 0 :(得分: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注入攻击。

答案 1 :(得分:0)

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