【问题标题】:Properties not found in OOP在 OOP 中找不到属性
【发布时间】:2013-07-02 09:19:47
【问题描述】:

我收到致命错误:在第 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
        }

        ?>

【问题讨论】:

  • 这可能意味着您的PHP版本中没有安装mysqli?见phpinfo();
  • 我在 phpinfo() 上找不到 mysqli; @deceze 一件事,我可以用 mysql 代替 mysqli 吗?谢谢

标签: php oop mysqli


【解决方案1】:

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

要检查 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 服务器。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-05
    • 2023-03-30
    • 2019-08-27
    相关资源
    最近更新 更多