中文字幕第五页-中文字幕第页-中文字幕韩国-中文字幕最新-国产尤物二区三区在线观看-国产尤物福利视频一区二区

php數據庫操作類 php 數據庫操作

PHP數據庫操作之基于Mysqli的數據庫操作類庫

此類庫簡單、易用,便于你自己修改和對功能的改善,能解決大部分

創新互聯建站是一家集網站建設,大觀企業網站建設,大觀品牌網站建設,網站定制,大觀網站建設報價,網絡營銷,網絡優化,大觀網站推廣為一體的創新建站企業,幫助傳統企業提升企業形象加強企業競爭力。可充分滿足這一群體相比中小企業更為豐富、高端、多元的互聯網需求。同時我們時刻保持專業、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學習、思考、沉淀、凈化自己,讓我們為更多的企業打造出實用型網站。

PHP

項目中執行的

SQL

操作。

初步工作

首先,請大家下載這個類庫

M.class.php 再下載一個

Mysqli

連接數據庫的類庫

MysqliDb.class.php(打包下載地址)

新建一個

includes

的文件夾,將下載下來的兩個

class

文件,放進去。

然后,請你在項目下創建一個

test.php

文件。注:UTF-8

文件格式

請先根據你機器的情況,填充以下代碼,用于連接數據庫:

復制代碼

代碼如下:

header('Content-Type:text/html;Charset=utf-8');

define('ROOT_PATH',

dirname(__FILE__));

define('DB_HOST',

'localhost');

//數據庫服務器地址

define('DB_USER',

'root');

//數據庫用戶名

define('DB_PWD',

'×××');//數據庫密碼

define('DB_NAME',

'×××');

//數據庫名稱

define('DB_PORT',

'3306');

//數據庫端口

function

__autoload($className)

{

require_once

ROOT_PATH

.

'/includes/'.

ucfirst($className)

.'.class.php';

//自動加載

class

文件

}

好了,上面的這些操作都是初步工作,下面正式進入類庫的講解。

類庫講解

首先,我們得實例化

M.class.php,實例化很簡單:

復制代碼

代碼如下:

$m

=

new

M();

//這步操作代表

M.class.php

中的所有功能都封裝在了變量

$m

注:

1、M類庫中的方法參數說明,請到

M.class.php

文件中看詳細的注釋,這里不再進行敘述。建議在學習的時候,對照著看下文件中的參數即注釋。

2、講解代碼中用到的數據庫結構為:

復制代碼

代碼如下:

CREATE

TABLE

`user`

(

`id`

int(8)

unsigned

NOT

NULL

auto_increment,

`name`

varchar(50)

default

NULL,

`email`

varchar(100)

default

NULL,

`age`

smallint(3)

default

NULL,

`class_id`

int(8)

default

NULL,

`commit_time`

int(10)

default

NULL,

PRIMARY

KEY

(`id`),

KEY

`name`

(`name`)

)

ENGINE=MyISAM

DEFAULT

CHARSET=utf8

復制代碼

代碼如下:

CREATE

TABLE

`class`

(

`class_id`

int(8)

NOT

NULL

auto_increment,

`class_name`

varchar(100)

default

NULL,

PRIMARY

KEY

(`class_id`)

)

ENGINE=InnoDB

DEFAULT

CHARSET=utf8

并添加一條測試數據。

3、M類庫中,大部分方法都分兩中類型,即:SQL方法;拼接方法,具體在實例中可以看出

4、以下稱述中的

M

M.class.php

文件

方法1、Insert()

添加數據

Insert

方法的全部使用案例如下:

復制代碼

代碼如下:

$m-Insert("user",

null,

array('焦焦',

'[email protected]',

'23',

time()));

//

拼接方法:往`user`表中添加一條數據,返回值為數據庫影響的行數

$m-Insert("user",

null,

array('焦焦',

'[email protected]',

'23',

time()),

true);

//

功能同上,返回

last_insert_id(插入的增長id)

$m-Insert("INSERT

INTO

`user`

(`name`,

`email`,

`age`,

`commit_time`)

VALUES

('張小花',

'[email protected]',

'22',

'".time()."')");

//SQL方法,返回值為數據庫影響的行數

$m-Insert("INSERT

INTO

`user`

(`name`,

`email`,

`age`,

`commit_time`)

VALUES

('張小花',

'[email protected]',

'22',

'".time()."')",

true);

//

同上,返回

last_insert_id

注:Insert

方法中的第二個參數若為null,可自動獲得插入表除

auto_increment

字段之外的所有字段,詳情請看M源文件;若要返回值為最后插入的

ID,那么請設置

Insert

方法的最后一個參數為

true(默認是false);

方法2、Update()

修改數據

update

方法的全部使用案例如下:

復制代碼

代碼如下:

$m-Update("user",

array('name'='李茹茹',

'age'=24),

"id=1");

//拼接方法,修改id為1的數據的名稱為“李茹茹”;年齡為“24”,其方法的返回值為受影響的行數

$m-Update("UPDATE

`user`

SET

`name`='李茹茹',

`age`=24

WHERE

id

=

1");

//SQL

用法,功能同上

方法3、Del()

刪除數據

Del

方法的全部使用案例如下:

復制代碼

代碼如下:

$m-Del('user',

'id=3');

//拼接方法:刪除`user`表中

id

為3的數據,返回受影響的行數

$m-Del("DELETE

FROM

`user`

WHERE

id=4");

//SQL方法:刪除`user`表中

id

為4的數據,返回受影響的行數

$m-Del("DELETE

FROM

`user`

WHERE

id

in

(10,

11,

12)");

//SQL方法:刪除多條數據,刪除`user`表中

id

10、11、12

的數據,返回受影響的行數

方法4、Total()

獲取記錄數,返回值都為int

Del

方法的全部使用案例如下:

復制代碼

代碼如下:

$m-Total('user');

//拼接方法:返回

`user`表中的記錄數,無條件

$m-Total('user',

'id1');

//拼接方法:返回

`user`表中

id

大于1的記錄數,有條件

$m-Total("SELECT

COUNT(*)

AS

total

FROM

`user`");

//SQL方法,注:使用SQL方法,語句中必須使用

"AS

total",否則會報錯

方法5、IsExists()

檢查數據是否存在,返回值為boolean

復制代碼

代碼如下:

$m-IsExists('user',

"`name`='焦焦'");

//拼接方法:返回`user`表中是否存在`name`為“焦焦”的數據,返回true,若不存在,返回false

方法6、InsertId()

獲取表下一個添加的自動增長id,注意,這里不進行添加操作,只是獲取下一個增長id

復制代碼

代碼如下:

echo

$m-InsertId('user');

//獲取`user`

表下一個添加的自動增長id

方法7、GetRow()

返回單條數據,返回值為一維數組

GetRow

方法的全部使用案例如下:

復制代碼

代碼如下:

$data

=

$m-GetRow("SELECT

`name`,email

FROM

`user`

WHERE

id=1");

//SQL方法,返回一維數組,例如:Array

(

[name]

=

焦焦

[email]

=

[email protected]

)

$data

=

$m-GetRow("SELECT

u.`name`,

u.email,

c.class_name

FROM

`user`

u,

`class`

c

WHERE

u.class_id=c.class_id

AND

u.id=1");

//SQL方法,多表查詢

$data

=

$m-GetRow('user',

'`name`,email',

"id=1");

//拼接方法

$data

=

$m-GetRow('user

as

u,`class`

c',

'u.`name`,u.email,c.class_name',

"u.id=1

AND

u.class_id=c.class_id");

//拼接方法,多表查詢

$data

=

$m-GetRow("SELECT

`name`,email

FROM

`user`");

//如果沒有指定條件應該是顯示全部信息,但是在此方法中將默認顯示第一條(不推薦這么使用!!!)

$data

是查詢出來的一維數組。

方法8、GetOne()

返回單個數據

GetOne

方法的全部使用案例如下:

復制代碼

代碼如下:

$name

=

$m-GetOne("SELECT

`name`

FROM

`user`

WHERE

id=1");

//SQL方法,返回一個字符串,例如:焦焦

$name

=

$m-GetOne("user",

"name",

"id=1");

//拼接方法,返回一個字符串,例如:焦焦

方法9、FetchAll()

返回所有記錄

復制代碼

代碼如下:

$data

=

$m-FetchAll("user");

//返回`user`表中的所有記錄,以二維數組的形式

$data

=

$m-FetchAll("SELECT

*

FROM

`user`");

//SQL

方法,功能和返回值同上

$data

=

$m-FetchAll("user",

"name,email",

"id1",

'id

DESC',

'2');

//返回兩條id1的數據,只顯示name,email,并且以id

為倒序排序。注:請注意該方法的最后一個參數也可以為'0,2',目的是為分頁準備的,如果第一頁為'0,2'的話,那么第二頁就是'2,2'

//該方法也支持聯表查詢和多表查詢,下面以聯表查詢為例

$data

=

$m-FetchAll("`user`

as

u

LEFT

JOIN

`class`

as

c

ON

u.class_id=c.class_id",

"u.`name`,u.email,

c.class_name",

"u.id=1");

//注意:該拼接方法中,ON

添加的位置

注:對于該

FetchAll

方法,后續我會寫一篇使用該方法進行完美分頁的文章!!請關注。

方法10、MultiQuery()

執行多條SQL語句

復制代碼

代碼如下:

$sql

=

"INSERT

INTO

user

(`name`,email,

age,

class_id,

commit_time)

VALUES

('賈花花',

'[email protected]',

'22',

'1',

'".time()."')";

//添加一個名叫“賈花花”的學生信息

$sql

.=

";DELETE

FROM

`user`

WHERE

`name`='焦焦'";

//刪除一條名叫“焦焦”的學生信息

//解釋:$sql

是多條

SQL

以英文;(分號)拼接起來的

$data

=

$m-MultiQuery($sql);

//返回為true,代表執行成功;為false,代表執行失敗

類庫講解完畢

到此該類庫的全部功能就講解完畢,希望你能多看看M文件,了解其內部運行的機制。M

文件不會存在執行緩慢情況,請大家放心使用。

如果在使用過程中出現

SQL

拼接錯誤,類庫會報出友善的錯誤提示。

有問題請留言,歡迎大家的批評和建議,加油!學習好運。

php創建的類操作數據庫的時候為什么會執行兩次?

提供的代碼存在一些問題:

1、構造函數名要和類名匹配,所以應該是function __construct($user,$password),而不是function mysql($user,$password)。

2. 主機、root 用戶、root 密碼和數據庫名稱的變量名在類中是硬編碼的,因此在創建類的實例時不能更改它們。

3、創建新用戶的SQL語句有錯字(create而不是create)。

4. 每次創建類的實例時,類構造函數都會創建一個新用戶,這可能不是期望的行為。

5. 類構造函數被調用兩次 - 一次是在創建類的實例時($c = new mysql($user,$password);),然后緊接著又一次($c -mysql($user) ,$密碼);)。

至于為什么會執行兩次echo語句,就是上面說的類構造函數被調用了兩次。要解決此問題,您可以刪除第二個函數調用 ($c -mysql($user,$password);) 并只調用一次構造函數 ($c = new mysql($user,$password);)。

此外,即使在代碼示例中,以純文本顯示密碼等敏感信息通常也不是一個好習慣。

PHP采用pdo方式訪問數據庫時,exec方法和prepare方法有什么區別

區別是:

PHP采用pdo方式訪問數據庫時,您不必再使用再為它們封裝數據庫操作類,只需要使用PDO接口中的方法就可以對各種數據庫進行操作。

php怎么操作數據庫~呢?

PHP鏈接數據庫有幾種方式

mysqli:

?php

$servername = "localhost";

$username = "username";

$password = "password";

// 創建連接

$conn = new mysqli($servername, $username, $password);

// 檢測連接

if ($conn-connect_error) {

die("連接失敗: " . $conn-connect_error);

}

echo "連接成功";

?

也可以使用PDO進行鏈接,前提是你必須在php.ini中開啟PDO:

?php

$servername = "localhost";

$username = "username";

$password = "password";

try {

$conn = new PDO("mysql:host=$servername;dbname=myDB", $username, $password);

echo "連接成功";

}

catch(PDOException $e)

{

echo $e-getMessage();

}

?

建議使用PDO,功能更加強大,兼容各種數據庫

關于這個問題,差不多就是這個樣子的了,你如果不明白,可以自己去后盾瞅瞅,我這些都是在后盾上學的,有空可以去看一下,就算不喜歡也沒關系啊,何樂而不為呢?

當前標題:php數據庫操作類 php 數據庫操作
網頁地址:http://www.2m8n56k.cn/article32/doidhsc.html

成都網站建設公司_創新互聯,為您提供網站排名虛擬主機App開發網站導航面包屑導航標簽優化

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:[email protected]。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

綿陽服務器托管
主站蜘蛛池模板: 亚洲欧美日本韩国综合在线观看 | 国产成人丝袜视频在线视频 | 精品日本一区二区三区在线观看 | 亚洲 欧美 激情 另类 校园 | 日本午夜精品 | 男女性高爱潮免费网站 | 中国美女隐私无遮挡免费视频 | 一级做a爰片毛片 | 久久精品视频3 | 玖草在线 | 成人黄色在线观看 | 国产成人福利免费观看 | 国产精品18久久久久久vr | 毛片基地看看成人免费 | 欧美一级毛片在线一看 | 国产不卡在线观看视频 | 女人扒开腿让男人捅啪啪 | 99国产精品农村一级毛片 | 日本精品视频一视频高清 | 毛片手机在线视频免费观看 | 大尺度福利视频奶水在线 | 国产性做久久久久久 | 在线成人国产 | 一区毛片| 欧美一级二级三级视频 | 大看蕉a在线观看 | 国产精品久久久久免费a∨ 国产精品久久久久免费视频 | 男女免费视频 | 中文国产成人精品久久96 | 色青青草原桃花久久综合 | 中文字幕福利片 | 日本特黄a级高清免费酷网 日本特黄特色 | 99re热视频这里只精品 | 中文国产成人精品久久久 | 伊人黄网| 欧美一区综合 | 正在播放国产一区 | 国产视频a区 | 国产精品视频一区二区猎奇 | 国产欧美日韩视频免费61794 | 一色屋色费精品视频在线观看 |