Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
这是使用php oop和mysqli的正确方法吗?_Php_Oop_Mysqli - Fatal编程技术网

这是使用php oop和mysqli的正确方法吗?

这是使用php oop和mysqli的正确方法吗?,php,oop,mysqli,Php,Oop,Mysqli,我对php oop不是很有经验。此外,当mysqli附带phpoop时,它让我更加困惑于如何以最高效的方式使用它。无论如何,首先看看我的连接类: <?php //connectionclass.php class connection{ public $conn; public $warn; public $err; function __construct(){ $this->connect(); } private function connect(){ $this-

我对php oop不是很有经验。此外,当mysqli附带phpoop时,它让我更加困惑于如何以最高效的方式使用它。无论如何,首先看看我的连接类:

<?php
//connectionclass.php
class connection{
public $conn;
public $warn;
public $err;

function __construct(){
  $this->connect();
}

private function connect(){
  $this->conn = @ new mysqli('localhost', 'sever_user', 'user_password');
    if ($this->conn->connect_error) {
      $this->conn = FALSE;
      $this->warn = '<br />Failed to connect database! Please try again later';
     }
}

public function get_data($qry){
  $result = $this->conn->query($qry);
  if($result->num_rows>=1){
    return $result;
  }else{
    $this->err = $this->conn->error;
    return FALSE;
  }
  $result->free();
}

public function post_data($qry){
  $this->conn->query($qry);
  if($this->conn->affected_rows>=1){
    return TRUE;
  }else{
    $this->err = $this->conn->error;
    return FALSE;
  }
}
}
?>

现在请构造一个使用mysql数据库存储和获取数据的php页面:

<?php
//login.php
include('/include/connectionclass.php');
$db = new connection();

$query = "SELECT * FROM USERS WHERE user_country='India'";
$data = $db->get_data($query);
  if($data){
    while($row=$data->fetch_assoc()){
      echo 'User Name: ':.$row["user_name"].' Age: '.$row["age"];
    }
  }
?>

所以我的login.php使用连接类来获取关于用户的数据。一切进展顺利。但有一件事让我困惑。在connectionclass.php中,
$this->conn
本身就是一个对象,它调用
新的mysqli
。这是另一个对象中的一个对象
$db
。此外,当我使用
$data=$db->get_data($query)时
,通过方法获取数据在对象
$db
内创建一个结果集,然后将该结果集复制到login.php页面内的变量
$data

据我所知,实际上这里创建了两个结果集/数据集,一个在db对象内部,一个在登录页面内部。使用mysqli和php从mysql数据库获取数据集是否正确?当数据集较大时(当许多用户必须获取大量数据时),它会使用更多的内存和服务器资源吗


如果这不是正确的方法,请解释您的观点,并给我一些可以有效用于php oop和mysqli的代码。

这个问题适合codereview.stackexchange.com。不,这不是使用PHPOOP和mysqli的正确方法。即使只创建了一个结果集。谢谢您的评论。但我不知道如何在codereview中发布,因为我在codereview.stackexchange.com中没有帐户。我是否需要为此创建另一个帐户,或者现有帐户足以在那里发布此代码?是的,现有帐户就足够了。这是一个可以链接所有帐户的单一网络。谢谢。我已经将此问题发布到codereview。我以前不知道codereview。再次感谢您的信息和建议。希望您能在那里给我一些示例代码(在codereview中),这是我高效使用php oop和mysqli代码的最佳选择。同一帖子的codereview中的链接是:此问题符合codereview.stackexchange.com的要求。不,这不是使用PHPOOP和mysqli的正确方法。即使只创建了一个结果集。谢谢您的评论。但我不知道如何在codereview中发布,因为我在codereview.stackexchange.com中没有帐户。我是否需要为此创建另一个帐户,或者现有帐户足以在那里发布此代码?是的,现有帐户就足够了。这是一个可以链接所有帐户的单一网络。谢谢。我已经将此问题发布到codereview。我以前不知道codereview。再次感谢您的信息和建议。希望您能在那里给我一些示例代码(在codereview中),这是我高效使用php oop和mysqli代码的最佳选择。相同帖子的codereview中的链接是