php數(shù)據(jù)庫函數(shù)封裝 php封裝接口

PHP函數(shù)封裝!

你傳入的sql不應(yīng)該那樣傳,可用性太低,函數(shù)或方法應(yīng)該傳入變量,或者說可變的值。上代碼,不懂的問

創(chuàng)新互聯(lián)建站堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站建設(shè)、成都做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的東烏珠穆沁網(wǎng)站設(shè)計(jì)、移動媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

/*封裝函數(shù)*/

$arr?=?$_POST;

//$sql?=?"INSERT?INTO?ui234_user?(username,password,u_name,u_time)?VALUES?(?,?,?,?)";

$table_name?=?"ui234_user";

$field_arr?=?array('username','password','u_name','u_time');

insert($arr,$table_name,$field_arr);

function?insert($arr,$table_name,$field_arr){

$sql?=?'INSERT?INTO?'.$table_name.'?(';

$field_name?=?'';//名稱

$field_value?=?'';//值

$field_post?=?'';//post取值

/*拼裝字段*/

foreach?($field_arr?as?$key?=?$value)?{

if($key?==?count($field_arr)-1){

$field_name?.=?$value;

$field_value.=?'?';

$field_post?.=?'$arr["'.$field_name.'"]';

}else{

$field_name?.=?$value.',';

$field_value.=?'?,';

$field_post?.=?'$arr["'.$value.'"],';

}

}

$sql?.=?$field_name.')?VALUES?('.$field_value.');';

$mysqli=connect();

$stmt?=?$mysqli-prepare("{$sql}");

$exe_str?=?'$stmt-bind_param("ssss",'.$field_post.');';

//輸出字符串結(jié)果

echo?$sql.'hr/';

echo?$exe_str;

//然后用eval執(zhí)行字符串代碼

eval($exe_str);//相當(dāng)于是:$stmt-bind_param('ssss',$arr['username'],$arr['password'],$arr['u_name'],$arr['u_time']);

stmt-execute();

}

PHP訪問MYSQL數(shù)據(jù)庫封裝類(附函數(shù)說明)

復(fù)制代碼

代碼如下:

?php

/*

MYSQL

數(shù)據(jù)庫訪問封裝類

MYSQL

數(shù)據(jù)訪問方式,php4支持以mysql_開頭的過程訪問方式,php5開始支持以mysqli_開頭的過程和mysqli面向?qū)ο?/p>

訪問方式,本封裝類以mysql_封裝

數(shù)據(jù)訪問的一般流程:

1,連接數(shù)據(jù)庫

mysql_connect

or

mysql_pconnect

2,選擇數(shù)據(jù)庫

mysql_select_db

3,執(zhí)行SQL查詢

mysql_query

4,處理返回的數(shù)據(jù)

mysql_fetch_array

mysql_num_rows

mysql_fetch_assoc

mysql_fetch_row

etc

*/

class

db_mysql

{

var

$querynum

=

;

//當(dāng)前頁面進(jìn)程查詢數(shù)據(jù)庫的次數(shù)

var

$dblink

;

//數(shù)據(jù)庫連接資源

//鏈接數(shù)據(jù)庫

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("無法鏈接數(shù)據(jù)庫!");

}

//設(shè)置查詢字符集

mysql_query("SET

character_set_connection={$dbcharset},character_set_results={$dbcharset},character_set_client=binary",$this-dblink)

;

//選擇數(shù)據(jù)庫

$dbname

@mysql_select_db($dbname,$this-dblink)

;

}

//選擇數(shù)據(jù)庫

function

select_db($dbname)

{

return

mysql_select_db($dbname,$this-dblink);

}

//執(zhí)行SQL查詢

function

query($sql)

{

$this-querynum++

;

return

mysql_query($sql,$this-dblink)

;

}

//返回最近一次與連接句柄關(guān)聯(lián)的INSERT,UPDATE

或DELETE

查詢所影響的記錄行數(shù)

function

affected_rows()

{

return

mysql_affected_rows($this-dblink)

;

}

//取得結(jié)果集中行的數(shù)目,只對select查詢的結(jié)果集有效

function

num_rows($result)

{

return

mysql_num_rows($result)

;

}

//獲得單格的查詢結(jié)果

function

result($result,$row=0)

{

return

mysql_result($result,$row)

;

}

//取得上一步

INSERT

操作產(chǎn)生的

ID,只對表有AUTO_INCREMENT

ID的操作有效

function

insert_id()

{

return

($id

=

mysql_insert_id($this-dblink))

=

?

$id

:

$this-result($this-query("SELECT

last_insert_id()"),

0);

}

//從結(jié)果集提取當(dāng)前行,以數(shù)字為key表示的關(guān)聯(lián)數(shù)組形式返回

function

fetch_row($result)

{

return

mysql_fetch_row($result)

;

}

//從結(jié)果集提取當(dāng)前行,以字段名為key表示的關(guān)聯(lián)數(shù)組形式返回

function

fetch_assoc($result)

{

return

mysql_fetch_assoc($result);

}

//從結(jié)果集提取當(dāng)前行,以字段名和數(shù)字為key表示的關(guān)聯(lián)數(shù)組形式返回

function

fetch_array($result)

{

return

mysql_fetch_array($result);

}

//關(guān)閉鏈接

function

close()

{

return

mysql_close($this-dblink)

;

}

//輸出簡單的錯(cuò)誤html提示信息并終止程序

function

halt($msg)

{

$message

=

"html\nhead\n"

;

$message

.=

"meta

content='text/html;charset=gb2312'\n"

;

$message

.=

"/head\n"

;

$message

.=

"body\n"

;

$message

.=

"數(shù)據(jù)庫出錯(cuò):".htmlspecialchars($msg)."\n"

;

$message

.=

"/body\n"

;

$message

.=

"/html"

;

echo

$message

;

exit

;

}

}

?

PHP中對數(shù)據(jù)庫操作的封裝,有什么好的例子嗎

類文件mysql.class.php:

?php

class?Mysql{

//數(shù)據(jù)庫連接返回值

private?$conn;

/**

*?[構(gòu)造函數(shù),返回值給$conn]

*?@param?[string]?$hostname?[主機(jī)名]

*?@param?[string]?$username[用戶名]

*?@param?[string]?$password[密碼]

*?@param?[string]?$dbname[數(shù)據(jù)庫名]

*?@param?[string]?$charset[字符集]

*?@return?[null]

*/

function?__construct($hostname,$username,$password,$dbname,$charset='utf8'){

$config?=?@mysql_connect($hostname,$username,$password);

if(!$config){

echo?'連接失敗,請聯(lián)系管理員';

exit;

}

$this-conn?=?$config;

$res?=?mysql_select_db($dbname);

if(!$res){

echo?'連接失敗,請聯(lián)系管理員';

exit;

}

mysql_set_charset($charset);

}

function?__destruct(){

mysql_close();

}

/**

*?[getAll?獲取所有信息]

*?@param?[string]?$sql?[sql語句]

*?@return?[array]?[返回二維數(shù)組]

*/

function?getAll($sql){

$result?=?mysql_query($sql,$this-conn);

$data?=?array();

if($result??mysql_num_rows($result)0){

while($row?=?mysql_fetch_assoc($result)){

$data[]?=?$row;

}

}

return?$data;

}

/**

*?[getOne?獲取單條數(shù)據(jù)]

*?@param?[string]?$sql?[sql語句]

*?@return?[array]?[返回一維數(shù)組]

*/

function?getOne($sql){

$result?=?mysql_query($sql,$this-conn);

$data?=?array();

if($result??mysql_num_rows($result)0){

$data?=?mysql_fetch_assoc($result);

}

return?$data;

}

/**

*?[getOne?獲取單條數(shù)據(jù)]

*?@param?[string]?$table?[表名]

*?@param?[string]?$data?[由字段名當(dāng)鍵,屬性當(dāng)鍵值的一維數(shù)組]

*?@return?[type]?[返回false或者插入數(shù)據(jù)的id]

*/

function?insert($table,$data){

$str?=?'';

$str?.="INSERT?INTO?`$table`?";

$str?.="(`".implode("`,`",array_keys($data))."`)?";

$str?.="?VALUES?";

$str?.=?"('".implode("','",$data)."')";

$res?=?mysql_query($str,$this-conn);

if($res??mysql_affected_rows()0){

return?mysql_insert_id();

}else{

return?false;

}

}

/**

*?[update?更新數(shù)據(jù)庫]

*?@param?[string]?$table?[表名]

*?@param?[array]?$data?[更新的數(shù)據(jù),由字段名當(dāng)鍵,屬性當(dāng)鍵值的一維數(shù)組]

*?@param?[string]?$where?[條件,‘字段名’=‘字段屬性’]

*?@return?[type]?[更新成功返回影響的行數(shù),更新失敗返回false]

*/

function?update($table,$data,$where){

$sql?=?'UPDATE?'.$table.'?SET?';

foreach($data?as?$key?=?$value){

$sql?.=?"`{$key}`='{$value}',";

}

$sql?=?rtrim($sql,',');

$sql?.=?"?WHERE?$where";

$res?=?mysql_query($sql,$this-conn);

if($res??mysql_affected_rows()){

return?mysql_affected_rows();

}else{

return?false;

}

}

/**

*?[delete?刪除數(shù)據(jù)]

*?@param?[string]?$table?[表名]

*?@param?[string]?$where?[條件,‘字段名’=‘字段屬性’]

*?@return?[type]?[成功返回影響的行數(shù),失敗返回false]

*/

function?del($table,$where){

$sql?=?"DELETE?FROM?`{$table}`?WHERE?{$where}";

$res?=?mysql_query($sql,$this-conn);

if($res??mysql_affected_rows()){

return?mysql_affected_rows();

}else{

return?false;

}

}

}

?

使用案例:

?php

//包含數(shù)據(jù)庫操作類文件

include?'mysql.class.php';

//設(shè)置傳入?yún)?shù)

$hostname='localhost';

$username='root';

$password='123456';

$dbname='aisi';

$charset?=?'utf8';

//實(shí)例化對象

$db?=?new?Mysql($hostname,$username,$password,$dbname);

//獲取一條數(shù)據(jù)

$sql?=?"SELECT?count(as_article_id)?as?count?FROM?as_article?where?as_article_type_id=1";

$count?=?$db-getOne($sql);

//獲取多條數(shù)據(jù)

$sql?=?"SELECT?*?FROM?as_article?where?as_article_type_id=1?order?by?as_article_addtime?desc?limit?$start,$limit";

$service?=?$db-getAll($sql);

//插入數(shù)據(jù)

$arr?=?array(

'as_article_title'='數(shù)據(jù)庫操作類',

'as_article_author'='rex',

);

$res?=?$db-insert('as_article',$arr);

//更新數(shù)據(jù)

$arr?=?array(

'as_article_title'='實(shí)例化對象',

'as_article_author'='Lee',

);

$where?=?"as_article_id=1";

$res?=?$db-update('as_article',$arr,$where);

//刪除數(shù)據(jù)

$where?=?"as_article_id=1";

$res?=?$db-del('as_article',$where);

?

php 函數(shù)封裝

?php

class?RandCount

{

static?public?function?countInt($number)

{

if?($number??0??$number?=?100)?{

$count?=?0;

for($i=0;$i100;$i++){

if(rand(1,100)==$number){

$count++;

}

}

return?$count;

}?else?{

return?'輸入數(shù)據(jù)不合法';

}

}

}

$msg=new?RandCount();

echo?$msg::countInt(50);

網(wǎng)站題目:php數(shù)據(jù)庫函數(shù)封裝 php封裝接口
本文地址:http://m.kartarina.com/article6/dodedog.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站制作做網(wǎng)站App開發(fā)響應(yīng)式網(wǎng)站靜態(tài)網(wǎng)站外貿(mào)建站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

綿陽服務(wù)器托管
主站蜘蛛池模板: 日韩乱码人妻无码中文字幕久久| 精品久久久无码中文字幕| 成在人线AV无码免费| 无码精品久久一区二区三区| 18禁成年无码免费网站无遮挡 | 亚洲AV永久无码精品一福利| 日韩精品无码久久一区二区三| 成人无码Av片在线观看| 无码人妻久久一区二区三区免费| 亚洲AV无码一区二区三区电影 | AV无码久久久久不卡网站下载| 亚洲中文字幕无码av永久| 无码专区天天躁天天躁在线| 无码日韩人妻AV一区免费l| 人妻无码αv中文字幕久久琪琪布| 精品无码成人久久久久久| 亚洲精品无码成人AAA片| 日韩AV无码一区二区三区不卡| 亚洲youwu永久无码精品 | 亚洲AV无码一区二区三区电影| 久久亚洲AV永久无码精品| 国产一区二区三区无码免费 | 人妻精品无码一区二区三区| av中文无码乱人伦在线观看| 亚洲AV无码一区二区乱子伦| 无码的免费不卡毛片视频| 久久水蜜桃亚洲AV无码精品| 无码色AV一二区在线播放| 亚洲精品无码成人片在线观看| 中文无码制服丝袜人妻av| 人妻少妇偷人精品无码| 久久美利坚合众国AV无码| 成人无码精品1区2区3区免费看| 色综合久久无码中文字幕| 国产av永久精品无码| 国产50部艳色禁片无码| 免费无码又爽又刺激高潮的视频| 久久久久无码专区亚洲av| 加勒比无码一区二区三区| 精品少妇无码AV无码专区| 无码人妻丰满熟妇区免费|