本文目錄一覽:
- 1、php如何去封裝mysqli
- 2、php封裝一個class類實現mysql改的方法
- 3、php實現mysql封裝類示例
- 4、PHP訪問MYSQL資料庫封裝類(附函數說明)
- 5、php 封裝mysql類怎麼做預處理
php如何去封裝mysqli
{
private $error = ”;
private $errno = 0;
private $port;
private $host;
private $username;
private $password;
private $dbname;
private $charset;
private $db;
/**
* 構造函數
* @author aaron
* @return void
*/
function __construct()
{
$this-port = 3306;
$this-host = ‘127.0.0.1’;
$this-username = ‘name’;
$this-password = ‘pwd’;
$this-dbname = ‘dbname’;
php封裝一個class類實現mysql改的方法
/**
* 執行更新記錄操作
* @param $data 要更新的數據內容,參數可以為數組也可以為字元串,建議數組。
* 為數組時數組key為欄位值,數組值為數據取值
* 為字元串時[例:`name`=’phpcms’,`hits`=`hits`+1]。
* 為數組時[例: array(‘name’=’phpcms’,’password’=’123456′)]
* 數組可使用array(‘name’=’+=1’, ‘base’=’-=1′);程序會自動解析為`name` = `name` + 1, `base` = `base` – 1
* @param $table 數據表
* @param $where 更新數據時的條件
* @return boolean
*/
public function update($data, $table, $where = ”) {
if($table == ” or $where == ”) {
return false;
}
$where = ‘ WHERE ‘.$where;
$field = ”;
if(is_string($data) $data != ”) {
$field = $data;
} elseif (is_array($data) count($data) 0) {
$fields = array();
foreach($data as $k=$v) {
switch (substr($v, 0, 2)) {
case ‘+=’:
$v = substr($v,2);
if (is_numeric($v)) {
$fields[] = $this-add_special_char($k).’=’.$this-add_special_char($k).’+’.$this-escape_string($v, ”, false);
} else {
continue;
}
break;
case ‘-=’:
$v = substr($v,2);
if (is_numeric($v)) {
$fields[] = $this-add_special_char($k).’=’.$this-add_special_char($k).’-‘.$this-escape_string($v, ”, false);
} else {
continue;
}
break;
default:
$fields[] = $this-add_special_char($k).’=’.$this-escape_string($v);
}
}
$field = implode(‘,’, $fields);
} else {
return false;
}
$sql = ‘UPDATE `’.$this-config[‘database’].’`.`’.$table.’` SET ‘.$field.$where;
return $this-execute($sql);
}
/**
* 資料庫查詢執行方法
* @param $sql 要執行的sql語句
* @return 查詢資源句柄
*/
private function execute($sql) {
if(!is_resource($this-link)) {
$this-connect();
}
$this-lastqueryid = mysql_query($sql, $this-link) or $this-halt(mysql_error(), $sql);
$this-querycount++;
return $this-lastqueryid;
}
php實現mysql封裝類示例
php封裝mysql類
複製代碼
代碼如下:
?php
class
Mysql
{
private
$host;
private
$user;
private
$pwd;
private
$dbName;
private
$charset;
private
$conn
=
null;
public
function
__construct()
{
$this-host
=
‘localhost’;
$this-user
=
‘root’;
$this-pwd
=
‘root’;
$this-dbName
=
‘test’;
$this-connect($this-host,$this-user,$this-pwd);
$this-switchDb($this-dbName);
$this-setChar($this-charset);
}
//負責鏈接
private
function
connect($h,$u,$p)
{
$conn
=
mysql_connect($h,$u,$p);
$this-conn
=
$conn;
}
//負責切換資料庫
public
function
switchDb($db)
{
$sql
=
‘use’
.
$db;
$this-query($sql);
}
//負責設置字符集
public
function
setChar($char)
{
$sql
=
‘set
names’
.
$char;
$this-query($sql);
}
//負責發送sql查詢
public
function
query($sql)
{
return
mysql_query($sql,$this-conn);
}
//負責獲取多行多列的select結果
public
function
getAll($sql)
{
$list
=
array();
$rs
=
$this-query($sql);
if
(!$rs)
{
return
false;
}
while
($row
=
mysql_fetch_assoc($rs))
{
$list[]
=
$row;
}
return
$list;
}
public
function
getRow($sql)
{
$rs
=
$this-query($sql);
if(!$rs)
{
return
false;
}
return
mysql_fetch_assoc($rs);
}
public
function
getOne($sql)
{
$rs
=
$this-query($sql);
if
(!$rs)
{
return
false;
}
return
mysql_fetch_assoc($rs);
return
$row[0];
}
public
function
close()
{
mysql_close($this-conn);
}
}
echo
‘pre’;
$mysql
=
new
Mysql();
print_r($mysql);
$sql
=
“insert
into
stu
values
(4,’wangwu’,’99998′)”;
if($mysql-query($sql)){
echo
“query成功”;
}else
{
echo
“失敗”;
}
echo
“br
/”;
$sql
=
“select
*
from
stu”;
$arr
=
$mysql-getAll($sql);
print_r($arr);
?
PHP訪問MYSQL資料庫封裝類(附函數說明)
複製代碼
代碼如下:
?php
/*
MYSQL
資料庫訪問封裝類
MYSQL
數據訪問方式,php4支持以mysql_開頭的過程訪問方式,php5開始支持以mysqli_開頭的過程和mysqli面向對象
訪問方式,本封裝類以mysql_封裝
數據訪問的一般流程:
1,連接資料庫
mysql_connect
or
mysql_pconnect
2,選擇資料庫
mysql_select_db
3,執行SQL查詢
mysql_query
4,處理返回的數據
mysql_fetch_array
mysql_num_rows
mysql_fetch_assoc
mysql_fetch_row
etc
*/
class
db_mysql
{
var
$querynum
=
;
//當前頁面進程查詢資料庫的次數
var
$dblink
;
//資料庫連接資源
//鏈接資料庫
function
connect($dbhost,$dbuser,$dbpw,$dbname=”,$dbcharset=’utf-8′,$pconnect=0
,
$halt=true)
{
$func
=
empty($pconnect)
?
‘mysql_connect’
:
‘mysql_pconnect’
;
$this-dblink
=
@$func($dbhost,$dbuser,$dbpw)
;
if
($halt
!$this-dblink)
{
$this-halt(“無法鏈接資料庫!”);
}
//設置查詢字符集
mysql_query(“SET
character_set_connection={$dbcharset},character_set_results={$dbcharset},character_set_client=binary”,$this-dblink)
;
//選擇資料庫
$dbname
@mysql_select_db($dbname,$this-dblink)
;
}
//選擇資料庫
function
select_db($dbname)
{
return
mysql_select_db($dbname,$this-dblink);
}
//執行SQL查詢
function
query($sql)
{
$this-querynum++
;
return
mysql_query($sql,$this-dblink)
;
}
//返回最近一次與連接句柄關聯的INSERT,UPDATE
或DELETE
查詢所影響的記錄行數
function
affected_rows()
{
return
mysql_affected_rows($this-dblink)
;
}
//取得結果集中行的數目,只對select查詢的結果集有效
function
num_rows($result)
{
return
mysql_num_rows($result)
;
}
//獲得單格的查詢結果
function
result($result,$row=0)
{
return
mysql_result($result,$row)
;
}
//取得上一步
INSERT
操作產生的
ID,只對錶有AUTO_INCREMENT
ID的操作有效
function
insert_id()
{
return
($id
=
mysql_insert_id($this-dblink))
=
?
$id
:
$this-result($this-query(“SELECT
last_insert_id()”),
0);
}
//從結果集提取當前行,以數字為key表示的關聯數組形式返回
function
fetch_row($result)
{
return
mysql_fetch_row($result)
;
}
//從結果集提取當前行,以欄位名為key表示的關聯數組形式返回
function
fetch_assoc($result)
{
return
mysql_fetch_assoc($result);
}
//從結果集提取當前行,以欄位名和數字為key表示的關聯數組形式返回
function
fetch_array($result)
{
return
mysql_fetch_array($result);
}
//關閉鏈接
function
close()
{
return
mysql_close($this-dblink)
;
}
//輸出簡單的錯誤html提示信息並終止程序
function
halt($msg)
{
$message
=
“html\nhead\n”
;
$message
.=
“meta
content=’text/html;charset=gb2312’\n”
;
$message
.=
“/head\n”
;
$message
.=
“body\n”
;
$message
.=
“資料庫出錯:”.htmlspecialchars($msg).”\n”
;
$message
.=
“/body\n”
;
$message
.=
“/html”
;
echo
$message
;
exit
;
}
}
?
php 封裝mysql類怎麼做預處理
?php
class Mysql {
private static $instance;
private $link;
private $query;
private $stmt;
private $param;
// 初始化
private function __construct() {
$this-link = @new mysqli(‘localhost’, ‘root’, ‘chenshuo90909’, ‘temp’);
if(mysqli_connect_errno()) {
echo “MySQL connect error!”; exit();
}
return $this-link;
}
// 單例模式
public static function instance() {
if(isset(self::$instance)){
這樣試試吧, 如果不行或不明白的話,你可以在後盾人看看視頻找找答案,有空多看看時間長了,慢慢就明白了,希望能幫到你,給個採納吧謝謝(๑๑)
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/156940.html