2016年10月11日 星期二

目前專案database table的php設定檔

        目前從之前的架構,再做了幾個專案之後,改成目前使用的樣子:

Ex. DaoSystemUser.php

<?php
namespace DB\Dao;

use DB\DB;

Class DaoSystemUser
{
    public $dbname = "systemuser";
    public $field_sn = "Sn";
    public $field_userid = "Userid";
    public $field_passwd = "Passwd";
    public $field_name = "Name";
    public $field_role = "Role";
    public $field_isstop = "IsStop";
    public $field_note = "Note";
    public $field_createuser = "CreateUser";
    public $field_createdate = "CreateDate";
    public $field_modifyuser = "ModifyUser";
    public $field_modifydate = "ModifyDate";

    private $DB;

    public function __construct()
    {
        $this->DB = new DB();
    }

    public function queryByAll()
    {
        $sql = "select * from " . $this->dbname;
        return $this->DB->query($sql);
    }

        導入了psr4機制,而名稱也統一在同一個地方管理,而連結資料庫的方式使用PDO,這裡使用github上的第三方套件:

https://github.com/indieteq/indieteq-php-my-sql-pdo-database-class

        在一開始就會自動加載進來,然後再用PDO去執行。

        而從資料庫調出來的值使用方式為:

<?phprequire __DIR__ . "/vendor/autoload.php";

use DB\Dao\DaoSystemUser;
$dsu = new DaoSystemUser();

$list = $dsu->queryByAll();

for ($i = 0; $i < count($list); $i++) {
    $SU = $list[$i];
    $userid = $SU[$dsu->field_userid];
    echo "userid: " . $userid, PHP_EOL;
    $name = $SU[$dsu->field_name];
    echo "name: " . $name, PHP_EOL;
    // and so on.....}

        如此就是目前能做到的最新資料庫連結架構,之後還要再繼續尋找更好的方案......


Ps. 如果只有撈出來特定欄位的值,記得不要用 select * ,全部撈會比撈特定值還要多耗費時間。

沒有留言:

張貼留言