爬一下PHP+MySQL OOP雖然有人寫教學文,但似乎沒有 mysqli 函數的寫法,所以就手動寫了個。
<?php
define('DB_MYSQL_HOST', 'YOUR_DB_HOST_HERE');
define('DB_MYSQL_USER', 'YOUR_USERNAME');
define('DB_MYSQL_PW', 'YOUR_PASSWORD');
define('DB_MYSQL_DB', 'YOUR_DB_TABLE');
?>
<?php
require_once('defines.php');
/**************************
* 資料庫登入格式化
**************************/
class DBLogin{
var $user;
var $password;
var $host;
var $db;
function __construct($host, $user, $password, $dbname)
{
$this->host = $host;
$this->user = $user;
$this->password = $password;
$this->db = $dbname;
}
public function the_user()
{
return StringSafe($this->user,0,255);
}
public function the_pw()
{
return $this->password;
}
public function the_host()
{
return $this->host;
}
public function the_db()
{
return $this->db;
}
}
/**************************
* MySQL連線
**************************/
class DBMySQL{
//設定變數
var $_dbConn; //連線資料
var $_qryRes; //儲存資料
//連線MySQL
// function connect($host,$user,$pw,$dbname){
function __construct($hostname, $user, $password, $dbname){
//建立連線
$_mysql_conn = mysqli_connect($hostname,
$user,
$password,
$dbname)
or die(TXT_ERR_DB.' '.mysqli_connect_error());
//設定UTF-8
mysqli_set_charset($_mysql_conn, "utf8");
$this -> _dbConn = $_mysql_conn;
return true;
}
//關閉連線
function __destruct()
{
mysqli_close($this->_dbConn);
}
//單一SQL查詢資料
public function query($sql){
//逃逸字元
//$_sql = mysqli_real_escape_string($this->_dbConn, $sql);
$_sql=$sql;
//撈資料
$qryData = mysqli_query($this->_dbConn, $_sql)
or die(TXT_ERR_DB.' '.mysqli_errno($this->_dbConn));
//儲存資料後回傳
$this->_qryRes = $qryData;
return $qryData;
}
//複數SQL查詢
public function queryMulti($sql)
{
//逃逸字元
//$_sql = mysqli_real_escape_string($this->_dbConn, $sql);
$_sql=$sql;
//撈資料
if(mysqli_multi_query($this->_dbConn, $_sql)){
do {
if($_result = mysqli_store_result($this->_dbConn)){
while ($_row = mysqli_fetch_all($_result, MYSQLI_ASSOC)) {
$this->_qryRes[] = $_row;
}
mysqli_free_result($_result);
}
} while (mysqli_next_result($this->_dbConn));
}
return $this->_qryRes;
}
//回傳查詢值(全部)
public function getAllData($type=null)
{
$_term = $type;
switch ($_term) {
case 'MYSQLI_NUM':
return mysqli_fetch_all($this->_qryRes, MYSQLI_NUM);
break;
case 'MYSQLI_ASSOC':
return mysqli_fetch_all($this->_qryRes, MYSQLI_ASSOC);
break;
case 'MYSQLI_BOTH':
return mysqli_fetch_all($this->_qryRes, MYSQLI_BOTH);
break;
default:
return mysqli_fetch_all($this->_qryRes, MYSQLI_ASSOC);
break;
}
}
//回傳查詢值(逐筆)
public function getData($type=null)
{
$_term = $type;
switch ($_term) {
case 'MYSQLI_NUM':
return mysqli_fetch_array($this->_qryRes, MYSQLI_NUM);
break;
case 'MYSQLI_ASSOC':
return mysqli_fetch_array($this->_qryRes, MYSQLI_ASSOC);
break;
case 'MYSQLI_BOTH':
return mysqli_fetch_array($this->_qryRes, MYSQLI_BOTH);
break;
default:
return mysqli_fetch_array($this->_qryRes, MYSQLI_NUM);
break;
}
}
//回傳查詢值總數
public function getRowsNum()
{
return mysqli_num_rows($this->_qryRes);
}
}
?>