加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – OO数据库类

发布时间:2020-12-13 17:03:48 所属栏目:PHP教程 来源:网络整理
导读:我试图通过在 PHP中创建数据库类来更加清晰地学习面向对象的编程. 这就是我现在所拥有的.当我尝试使用$db- query()调用它时,我收到一个关于$mysqli是一个未定义变量的错误; 请解释如何定义变量$mysqli. ?phpclass phpDatabaseClass { public function __cons
我试图通过在 PHP中创建数据库类来更加清晰地学习面向对象的编程.

这就是我现在所拥有的.当我尝试使用$db-> query()调用它时,我收到一个关于$mysqli是一个未定义变量的错误;

请解释如何定义变量$mysqli.

<?php

class phpDatabaseClass {

 public function __construct()
 {
  $mysqli = new mysqli(DBhost,DBusername,DBpassword,DBname);
 }

 public function query()
 {
  $sql = 'select * from users';
  $results = $mysqli->query($sql);

  if(($results->num_rows) > 0) 
  {
   echo 'We have: '.$results->num_rows;
  }
 }

}

?>

在另一个文件中,我实例化对象,然后调用这样的函数:

require 'phpDatabaseClass.php';
 define('DBhost','localhost');
 define('DBusername','root');
 define('DBpassword','root');
 define('DBname','campbellCustomCoatings');


 $db = new phpDatabaseClass();
 $db->query();

解决方法

你的mysqli实例需要成为你班级的一员,看看这里……

class phpDatabaseClass {
 private $mysqli;
 public function __construct()
 {
  $this->mysqli = new mysqli(DBhost,DBname);
 }

 public function query()
 {
  $sql = 'select * from users';
  $results = $this->mysqli->query($sql);

  if(($results->num_rows) > 0) 
  {
   echo 'We have: '.$results->num_rows;
  }
 }

}

另外,因为您正在学习,请尝试扩展PDO类以了解继承.

此外,略有切向,但通常常量以ALL_CAPS_WITH_UNDERSCORE_SEPARATORS命名.

此外,全局定义中的数据库内容可能存在风险,因为每个PHP都可以访问它.我知道WordPress会这样做,但请相信我的代码质量值得怀疑.然而,它的受欢迎程度无疑是巨大的.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读