偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

百寶箱之介紹PHP Web查詢數(shù)據(jù)庫(kù)基本步驟

開(kāi)發(fā) 后端
WEB開(kāi)發(fā)是強(qiáng)大的,文章這里詳細(xì)的介紹了PHP Web查詢數(shù)據(jù)庫(kù)的基本步驟,希望對(duì)大家有技術(shù)上的提高。

PHP是開(kāi)發(fā)WEB動(dòng)態(tài)頁(yè)面的***編程,最近看了一本書(shū)收獲很多,現(xiàn)在和大家一起分享一下PHP Web查詢數(shù)據(jù)庫(kù)的知識(shí),下面我們就一起來(lái)看看吧。從PHP Web查詢數(shù)據(jù)庫(kù)的基本步驟:

1. 檢查并過(guò)濾來(lái)自用戶的數(shù)據(jù) 首先,我們將過(guò)濾用戶可能在其搜索條件的起始或結(jié)束位置不小心輸入的空白字符,這是用函數(shù)trim()來(lái)實(shí)現(xiàn)。 我們這么麻煩的檢查用戶輸入數(shù)據(jù)的原因是防止多個(gè)接口連接數(shù)據(jù)庫(kù),因?yàn)橛脩魪牟煌慕缑孢M(jìn)入,這樣可能導(dǎo)致安全問(wèn)題。

然后,當(dāng)準(zhǔn)備使用用戶輸入的任何數(shù)據(jù)時(shí),也要適當(dāng)?shù)倪^(guò)濾一些控制字符,當(dāng)用戶輸入數(shù)據(jù)到數(shù)據(jù)庫(kù)時(shí)必須轉(zhuǎn)義數(shù)據(jù),,此時(shí)使用盜的函數(shù)有 addslashes()函數(shù)、stripslashes()函數(shù)和get_magic_qutoes_gpc()函數(shù)。 addslashes()函數(shù)為了數(shù)據(jù)庫(kù)查詢語(yǔ)句等的需要在某些字符前加上了反斜線;stripslashes()函數(shù)去掉字符串中的反斜線字符;get_magic_qutoes_gpc()函數(shù) 魔術(shù)添加轉(zhuǎn)義字符 “”,獲取當(dāng)前活動(dòng)配置magic_quotes_runtime設(shè)置,如果運(yùn)行時(shí)關(guān)閉魔術(shù)引號(hào),返回0,否則返回1。我們也可以使用 htmispecialchars()對(duì)HTML中的特殊意義字符警醒編碼,htmispecialchars()函數(shù)把一些預(yù)定義的字符轉(zhuǎn)換為 HTML 實(shí)體 預(yù)定義的字符是:& (和號(hào)) 成為 & " (雙引號(hào)) 成為 " ' (單引號(hào)) 成為 ' < (小于) 成為 < > (大于) 成為 >

2. 建立一個(gè)到適當(dāng)數(shù)據(jù)庫(kù)的連接 PHP為連接MySQL提供了函數(shù)庫(kù)mysqli(i表示改進(jìn))。

當(dāng)在PHP中使用mysqli函數(shù)庫(kù)是可以使用面向?qū)ο蠡蛎嫦蜻^(guò)程的語(yǔ)法:

1)面向?qū)ο螅?@ $db = new mysqli('hostname','username','password','dbname');返回一個(gè)對(duì)象

2)面向過(guò)程: @ $db = mysqli_connect('hostname','username','password','dbname');返回一個(gè)資源,這個(gè)資源表示數(shù)據(jù)庫(kù)的連接,而且 如果使用過(guò)程方法,必須將這個(gè)資源傳遞到mysqli的所有其它函數(shù)。

這與處理函數(shù)非常類(lèi)似mysqli的大多數(shù)函數(shù)都有面向?qū)ο蠼涌诤瓦^(guò)程接口,二者的差異則在于過(guò)程版本的函數(shù)名稱(chēng)以mysqli_開(kāi)頭,同時(shí)要求傳入 mysqli_connect()函數(shù)獲得的資源句柄。對(duì)于這個(gè)規(guī)則來(lái)說(shuō),數(shù)據(jù)可連接是一個(gè)異常,因?yàn)樗怯蒻ysqli對(duì)象的構(gòu)造函數(shù)來(lái)創(chuàng)建的。因此嘗試連接時(shí)需要進(jìn)行檢查,mysqli_connect_errno()函數(shù)將在出現(xiàn)連接 錯(cuò)誤時(shí)返回一個(gè)錯(cuò)誤號(hào),如果成功,則返回0.

請(qǐng)注意:當(dāng)連接到數(shù)據(jù)庫(kù)是,通常會(huì)議錯(cuò)誤抑制符@作為***含代碼。這樣可以巧妙的處理任何錯(cuò)誤,也可以通過(guò)異常來(lái)處理。另外,MySQK對(duì)同時(shí)連接數(shù)據(jù)庫(kù)的連接數(shù)量有一定的限制。MySQLi參數(shù)max_connections決定了同時(shí)連接的個(gè)數(shù),該參數(shù)和相關(guān)的Apache參數(shù) MaxClients的作用是告訴服務(wù)器拒絕新的連接請(qǐng)求,從而保證系統(tǒng)資源不會(huì)再系統(tǒng)忙碌時(shí)或系統(tǒng)癱瘓時(shí)被請(qǐng)求或使用。要設(shè)置Apache中的 MaxClients參數(shù)可以編輯系統(tǒng)中的httpd.conf文件。要為MySQLi設(shè)置max_connections參數(shù)可以編輯文件my.conf。

選擇使用的數(shù)據(jù)庫(kù): 在MySQL命令行使用 use dbname;命令;在php中可以用$db->select_db(dbname);或mysqli_select_db(db_resource,dbname)。

3. 查詢數(shù)據(jù)庫(kù) 要執(zhí)行數(shù)據(jù)庫(kù)查詢,首先應(yīng)構(gòu)造查詢語(yǔ)句:$query = "select  from user";然后運(yùn)行 $result = $db->query($query);或者$result = mysqli_query($db,$query); 面向?qū)ο蟀姹緦⒎祷匾粋€(gè)結(jié)果對(duì)象;過(guò)程版本將返回一個(gè)結(jié)果資源。無(wú)論何種方法都將結(jié)果保存在$result變量中工以后使用。如果函數(shù)運(yùn)行失敗將返回 false。

4. 獲取查詢結(jié)果 使用不同的函數(shù)以不同的方式將查詢結(jié)果從結(jié)果對(duì)象或標(biāo)識(shí)符中取出來(lái),結(jié)果對(duì)象或標(biāo)識(shí)符是訪問(wèn)查詢返回行的關(guān)鍵。

#T#通常我們要得到結(jié)果集中記錄行的行數(shù),并且使用mysqli_fetch_assoc()函數(shù)。返回行數(shù):$num_results = $result->num_rows;(行數(shù)保存在對(duì)象的num_rows成員變量中)或$num_results = mysqli_num_rows($result);然后使用循環(huán)遍歷每一行,在循環(huán)中調(diào)用 $row = $result->fectch_assoc();或者 $row = mysqli_fetch_assoc($result);返回該行的信息。如果是對(duì)象返回行則每個(gè)關(guān)鍵詞為一個(gè)屬性名,每個(gè)值為屬性中的相應(yīng)的值;如果以資源返回則返回?cái)?shù)組。

還有其他從結(jié)果標(biāo)識(shí)符中獲取結(jié)果的方法,例如:使用$row = $result->fecth_row($result);或者$row = mysqli_fetch_row($result);將結(jié)果取回到一個(gè)列舉數(shù)組中;也可以使用$row = $result->fecth_object();或者 $row = mysqli_fecth_object($result);江一行去回到一個(gè)對(duì)象中。

5. 從數(shù)據(jù)庫(kù)斷開(kāi) 先釋放結(jié)果集:$result->free();或 mysqli_free_result($result);然后關(guān)閉數(shù)據(jù)庫(kù)連接:$db->close()或者 mysqli_close($db); 嚴(yán)格的說(shuō),這并不必須,因?yàn)槟_本執(zhí)行完畢的時(shí)候他們將被自動(dòng)關(guān)閉。

以上就是PHP Web查詢數(shù)據(jù)庫(kù)的基本步驟,不知道大家學(xué)會(huì)了嗎?趕快試試吧。

責(zé)任編輯:田樹(shù) 來(lái)源: 博客
相關(guān)推薦

2009-11-16 14:52:16

PHP數(shù)組

2009-10-28 18:35:10

Linux基礎(chǔ)用戶

2015-09-22 15:24:27

SDNDocker

2015-09-22 16:11:41

SDNDocker

2009-10-28 14:51:33

VB.NET設(shè)計(jì)制作窗

2009-10-28 13:54:38

linux安裝顯卡驅(qū)動(dòng)

2009-10-28 12:05:32

linux監(jiān)控技術(shù)

2011-04-13 09:40:27

2025-04-17 08:28:13

2009-11-05 11:12:21

WCF自宿主

2009-10-27 13:14:35

VB.NET窗體應(yīng)用

2009-11-09 11:31:47

WCF消息隊(duì)列

2009-10-28 09:48:31

VB.NET XmlR

2009-11-03 16:17:39

ADO.NET Ent

2009-10-27 15:42:04

VB.NET文件對(duì)象

2009-11-12 14:18:19

ADO.NET分頁(yè)

2016-01-14 14:17:51

密碼管理密碼分析安全工具

2009-11-03 16:57:34

ADO.NET FAQ
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)