在OOP中找不到的属性

时间:2013-07-02 09:19:48

标签: php oop mysqli

我收到致命错误:第19行的/config/mySQL_class.php中找不到类'mysqli' 我测试了我的代码,但我似乎无法找到解决问题的方法,我只是一个初学程序员,昨天开始尝试OOP。有任何想法吗?

<?php


class Database
{



    public $data;

    public $mysqli;

    public function __construct($host, $username, $password, $database){

        $this->mysqli = new mysqli($host, $username, $password, $database);

        if(mysqli_connect_errno()){

            echo "Error: Could not connect to database.";

        exit;

        }
    }



    public function __destruct(){

        $this->mysqli->close();

    }


    public function read(){

    $sql = "SELECT * FROM `user` ";
    $result = $this->mysqli->query($query);
    $num_result = $result->num_rows;

    if($num_result>0)
    {

        while($rows=$result->fetch_assoc()){

            $this->data[]=$rows;

                }
            } else {

                return $this->data;

        }
    }




}

?>

用法

include('config/mySQL_class.php');

$obj=new Crud("localhost","root","","crud");
$obj->read();

    <table width="500" border="1" cellpadding="5">
      <tr>
        <th width="16" scope="row">id</th>
        <td width="95">name</td>
        <td width="140">email</td>
        <td width="104">address</td>
         <td width="71">Mobile</td>
        <td>action</td>
      </tr>

        <?php
        foreach($obj->data as $val){
            extract($val);

            ?>
            <tr>
            <td scope="row"><?php echo $id; ?></td>
            <td><?php echo $name; ?></td>
            <td><?php echo $email; ?></td>
            <td><?php echo $address; ?></td>
            <td><?php echo $mob; ?></td>
             <td><a href="edit.php?id=<?php echo $id; ?>">edit</a>|<a href="delete.php?id=<?php echo $id; ?>">Delete</a></td>
          </tr>
            <?php
        }

        ?>

1 个答案:

答案 0 :(得分:-1)

当您的服务器上未安装MySQLi扩展时,这是一个comon错误。

要检查MySQLi扩展是否可用,请尝试以下操作:

if (!function_exists('mysqli_init') && !extension_loaded('mysqli')) {
    echo 'MySQLi extension is missing!';
} else {
    echo 'MySQLi extension is installed!';
}

要安装MySQLi扩展程序,请按this instructions

您也可能安装了MySQLi扩展,但在php.ini文件中进行了注释。打开php.ini并检查extension = php_mysqli.so是否未被注释。如果是这样,请取消注释并重新启动apache服务器。