PHP OOP数据库连接

栏目: PHP · 发布时间: 7年前

内容简介:翻译自:https://stackoverflow.com/questions/20732897/php-oop-database-connect

我刚刚开始学习面向对象编程的概念,并且我已经用函数编写了这个类.

它工作正常,但我很想知道我是否正确地做到了这一点……

这是我的代码:

class Database{
    const DB_HOSTNAME = 'localhost';
    const DB_USERNAME = 'root';
    const DB_PASSWORD = 'password';
    const DB_NAME = 'shop';
    protected $_db_connect;
    protected $_sql;
    protected $_result;
    protected $_row;

    function db_connect(){
        $this->_db_connect = mysql_connect(self::DB_HOSTNAME,self::DB_USERNAME,self::DB_PASSWORD) or die(mysql_error());
    }

    function slect_db(){
        mysql_select_db(self::DB_NAME) or die(mysql_error());
    }

    function sql(){
        $this->_sql = 'SELECT * FROM users';
    }

    function query(){
        $this->_result = mysql_query($this->_sql);
    }

    function fetch_array(){
        while($this->_row = mysql_fetch_array($this->_result)){
            $username = $this->_row['user_USERNAME'];

            echo "<ul>";
                echo "<li>".$username."</li>";
            echo "</ul>";
        }
    }

    function db_close(){
        mysql_close($this->_db_connect);
    }
}

$database = new Database();
$database->db_connect();
$database->slect_db();
$database->sql();
$database->query();
$database->fetch_array();
$database->db_close();

请使用PDO或MySQLi,因为它更安全,并且如上所述不推荐使用mysql_ *函数,我提供了一些使用PDO的通用代码来帮助您进行新的冒险.正如评论中所述,如果你正在寻找一个面向对象的设计,你真的不应该回应数据,你应该做的是在你进行查询之后,返回你提取的行并从那里使用一些东西比如foreach循环然后显示你的数据.以这种方式执行数据库类还将确保不会立即打开多个数据库连接!请注意,此代码仅供您参考,应在生产中使用之前进行测试或任何实时测试.

config.php文件:

<?php
    //Enter your database connection details here.
    $host = 'localhost'; //HOST NAME.
    $db_name = 'databasename'; //Database Name
    $db_username = 'root'; //Database Username
    $db_password = ''; //Database Password

    try
    {
        $pdo = new PDO('mysql:host='. $host .';dbname='.$db_name, $db_username, $db_password);
    }
    catch (PDOException $e)
    {
        exit('Error Connecting To DataBase');
    }
?>

database.class.php:

<?php
    class database
    {
        function __construct($pdo)
        {
            $this->pdo = $pdo;
        }

        function getData()
        {
            $query = $this->pdo->prepare('SELECT * FROM database');
            $query->execute();
            return $query->fetchAll();
        }
    }
?>

index.php文件:

<?php
    require_once 'config.php';
    require_once 'database.class.php';
    $db = new database($pdo);
    $rows = $db->getData();
?>

翻译自:https://stackoverflow.com/questions/20732897/php-oop-database-connect


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

技术赋权

技术赋权

郑永年 / 邱道隆 / 东方出版社 / 2014-4-1 / CNY 45.00

在本书中,作者对中国互联网的历史做了一次突破性的研究,细致又全面地观察了中国互联网对于国家和社会的影响,发现互联网给中国的社会—政治变革带来了新的动力。政府权力和社会力量在以互联网为媒介的公共领域中转换。 从大量的数据梳理和事实分析中,作者得出了四重的研究结论。首先,互联网给政府和社会都增加了权力。互联网在促进政治自由化中扮演了重要的角色,使政府更加开放、透明和负责任。第二,互联网产生了大量......一起来看看 《技术赋权》 这本书的介绍吧!

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具