黄色网页视频 I 影音先锋日日狠狠久久 I 秋霞午夜毛片 I 秋霞一二三区 I 国产成人片无码视频 I 国产 精品 自在自线 I av免费观看网站 I 日本精品久久久久中文字幕5 I 91看视频 I 看全色黄大色黄女片18 I 精品不卡一区 I 亚洲最新精品 I 欧美 激情 在线 I 人妻少妇精品久久 I 国产99视频精品免费专区 I 欧美影院 I 欧美精品在欧美一区二区少妇 I av大片网站 I 国产精品黄色片 I 888久久 I 狠狠干最新 I 看看黄色一级片 I 黄色精品久久 I 三级av在线 I 69色综合 I 国产日韩欧美91 I 亚洲精品偷拍 I 激情小说亚洲图片 I 久久国产视频精品 I 国产综合精品一区二区三区 I 色婷婷国产 I 最新成人av在线 I 国产私拍精品 I 日韩成人影音 I 日日夜夜天天综合

從Web查詢數(shù)據(jù)庫之PHP與MySQL篇

系統(tǒng) 2311 0

PHP+MySQL的組合是構(gòu)建網(wǎng)站的一個常見搭配,不過如何使用通過Web訪問庫呢?下面從Web數(shù)據(jù)庫架構(gòu)的工作原理講起。

從Web查詢數(shù)據(jù)庫:Web數(shù)據(jù)庫架構(gòu)的工作原理

一個的瀏覽器發(fā)出一個HTTP請求,請求特定的Web頁面,在該頁面中出發(fā)form表單提交到php腳本文件(如:results.php)中處理
Web服務(wù)器接收到對results.php頁面的請求后,檢索文件,并將其傳遞給PHP引擎處理
PHP引擎開始解析腳本。腳本主要包括了連接數(shù)據(jù)庫和執(zhí)行的命令。PHP啟動了對MySQL服務(wù)器的連接并向該發(fā)送適當(dāng)?shù)牟樵儭?
MySQL服務(wù)器接收到數(shù)據(jù)庫查詢的請求,開始處理這個查詢,并將查詢結(jié)果返回給PHP引擎。
PHP引擎完成了腳本的運行后,將該返回Web服務(wù)器。
Web服務(wù)器再將HTML返回給客戶端瀏覽器,用戶就可以看到響應(yīng)后的結(jié)果頁面。
從Web查詢數(shù)據(jù)庫的基本步驟

檢查并過濾來自用戶的數(shù)據(jù) 首先,我們將過濾用戶可能在其搜索條件的起始或結(jié)束位置不小心輸入的空白字符,這是用函數(shù)()來實現(xiàn)。 我們這么麻煩的檢查用戶輸入數(shù)據(jù)的原因是防止多個接口連接數(shù)據(jù)庫,因為用戶從不同的界面進入,這樣可能導(dǎo)致安全問題。
然 后,當(dāng)準備使用用戶輸入的任何數(shù)據(jù)時,也要適當(dāng)?shù)倪^濾一些控制字符,當(dāng)用戶輸入數(shù)據(jù)到數(shù)據(jù)庫時必須轉(zhuǎn)義數(shù)據(jù),,此時 使用盜的函數(shù)有addslashes()函數(shù)、stripslashes()函數(shù)和get_magic_qutoes_gpc()函數(shù)。 addslashes()函數(shù)為了數(shù)據(jù) 庫查詢語句等的需要在某些字符前加上了反斜線;stripslashes()函數(shù)去掉字符串中的反斜線字 符;get_magic_qutoes_gpc()函數(shù) 魔術(shù)添加轉(zhuǎn)義字符 “\”,獲取當(dāng)前活動配置magic_quotes_runtime設(shè)置,如果運行時關(guān)閉魔術(shù)引號,返回0,否則返回1。我們也可以使用 htmispecialchars()對HTML中的特殊意義字符警醒編碼,htmispecialchars()函數(shù)把一些預(yù)定義的字符轉(zhuǎn)換為 HTML 實體 【預(yù)定義的字符是:& (和號) 成為 & " (雙引號) 成為 " ' (單引號) 成為 ' < (小于) 成為 < > (大于) 成為 >】

建立一個到適當(dāng)數(shù)據(jù)庫的連接 PHP為連接MySQL提供了函數(shù)庫mysqli(i表示改進)。
當(dāng)在PHP中使用mysqli函數(shù)庫是可以使用面向?qū)ο蠡蛎嫦蜻^程的語法:

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

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

mysqli的大多數(shù)函數(shù)都 有面向?qū)ο蠼涌诤瓦^程接口,二者的差異則在于過程版本的函數(shù)名稱以mysqli_開頭,同時要求傳入mysqli_connect()函數(shù)獲得的資源句 柄。 對于這個規(guī)則來說,數(shù)據(jù)可連接是一個異常,因為它是由mysqli對象的構(gòu)造函數(shù)來創(chuàng)建的。因此嘗試連接時需要進行檢 查,mysqli_connect_errno()函數(shù)將在出現(xiàn)連接 錯誤時返回一個錯誤號,如果成功,則返回0.


請注意:

當(dāng) 連接到數(shù)據(jù)庫是,通常會議錯誤抑制符@作為第一含代碼。這樣可以巧妙的處理任何錯誤,也可以通過異常來處理。另外,MySQK對同時連接 數(shù)據(jù)庫的連接數(shù)量有一定的限制。MySQLi參數(shù)max_connections決定了同時連接的個數(shù),該參數(shù)和相關(guān)的Apache參數(shù) MaxClients的作用是告訴服務(wù)器拒絕新的連接請求, 從而保證系統(tǒng)資源不會再系統(tǒng)忙碌時或系統(tǒng)癱瘓時被請求或使用。要設(shè)置Apache中的MaxClients參數(shù)可以編輯系統(tǒng)中的httpd.conf文 件。要為MySQLi設(shè)置max_connections參數(shù) 可以編輯文件my.conf。
選擇使用的數(shù)據(jù)庫: 在MySQL命令行使用 use dbname;命令;在php中可以用$db->select_db(dbname);或mysqli_select_db(db_resource,dbname)。

查 詢數(shù)據(jù)庫 要執(zhí)行數(shù)據(jù)庫查詢,首先應(yīng)構(gòu)造查詢語句:$query = "select * from user";然后運行 $result = $db->query($query);或者$result = mysqli_query($db,$query); 面向?qū)ο蟀姹緦⒎祷匾粋€結(jié)果對象;過程版本將返回一個結(jié)果資源。無論何種方法都將結(jié)果保存在$result變量中工以后使用。如果函數(shù)運行失敗將返回 false。
獲取查詢結(jié)果 使用不同的函數(shù)以不同的方式將查詢結(jié)果從結(jié)果對象或標(biāo)識符中取出來,結(jié)果對象或標(biāo)識符是訪問查詢返回行的關(guān)鍵。
通常我們要得到結(jié)果集中記錄行的行數(shù),并且使用mysqli_fetch_assoc()函數(shù)。

返回行數(shù):$num_results = $result->num_rows;(行數(shù)保存在對象的num_rows成員變量中)或$num_results = mysqli_num_rows($result);

然 后使用循環(huán)遍歷每一行,在循環(huán)中調(diào)用 $row = $result->fectch_assoc();或者 $row = mysqli_fetch_assoc($result);返回該行的信息。 如果是對象返回行則每個關(guān)鍵詞為一個屬性名,每個值為屬性中的相應(yīng)的值;如果以資源返回則返回數(shù)組。

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

從數(shù)據(jù)庫斷開 先釋放結(jié)果集:$result->free();或 mysqli_free_result($result);然后關(guān)閉數(shù)據(jù)庫連接:$db->close()或者 mysqli_close($db); 嚴格的說,這并不必須,因為腳本執(zhí)行完畢的時候他們將被自動關(guān)閉。
從Web查詢數(shù)據(jù)庫:使用Prepared語句

mysqli函數(shù)庫支持prepared語句的使用。它們對于在執(zhí)行大量具有不同數(shù)據(jù)的相同查詢時,可以提高速度,也可以免受注射風(fēng)格(injection-stytle

從Web查詢數(shù)據(jù)庫之PHP與MySQL篇


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論