《PHP實例:PHP連接和操作MySQL數(shù)據(jù)庫基礎(chǔ)教程》要點:
本文介紹了PHP實例:PHP連接和操作MySQL數(shù)據(jù)庫基礎(chǔ)教程,希望對您有用。如果有疑問,可以聯(lián)系我們。
從這里開始PHP教程
我的博客,后臺數(shù)據(jù)庫是什么?沒錯,就是MySQL,服務(wù)器端使用的腳本就是PHP,整個框架使用的是WordPress.PHP和MySQL就像夫妻一樣,總是在一起干活.現(xiàn)在這里,就集合PHP,總結(jié)一下MySQL的實際使用,也算作是MySQL開發(fā)的入門.關(guān)于PHP與MySQL的合作,不外乎以下三種辦法:PHP教程
1.mysql擴展;但是目前已經(jīng)不保舉使用;PHP教程
2.mysqli擴展;同時提供面向?qū)ο笞黠L(fēng)和面向過程的作風(fēng);要求MySQL版本是4.1及以上的;PHP教程
3.PDO擴展為PHP拜訪數(shù)據(jù)庫定義了一種輕量級的一致接口;PDO_MYSQL是對其的具體實現(xiàn).這里暫時只關(guān)心開發(fā).由于mysql擴展已經(jīng)不推薦使用了,我也會與時俱進,不做總結(jié);而mysqli和PDO方式用的比較多,所以這篇將會總結(jié)如何使用mysqli擴展來連接數(shù)據(jù)庫服務(wù)器,如何查詢和獲取數(shù)據(jù),以及如何執(zhí)行其它重要任務(wù).下一篇博文將會總結(jié)PDO的相關(guān)內(nèi)容.PHP教程
使用mysqli擴展PHP教程
先看以下測試數(shù)據(jù)庫db_test中的測試數(shù)據(jù):PHP教程
1.樹立和斷開連接PHP教程
與MySQL數(shù)據(jù)庫交互時,首先要建立連接,最后要斷開連接;這包含與服務(wù)器連接并選擇一個數(shù)據(jù)庫,以及最后關(guān)閉連接,釋放資源.選擇使用面向?qū)ο蠼涌谂cMySQL服務(wù)器交互,首先需要通過其構(gòu)造函數(shù)實例化mysqli類.PHP教程
一旦成功的選擇了數(shù)據(jù)庫,然后就可以對這個數(shù)據(jù)庫執(zhí)行數(shù)據(jù)庫查詢了.一旦腳本執(zhí)行完畢,所有打開的數(shù)據(jù)庫連接都會自動關(guān)閉,并釋放資源.不過,有可能一個頁面在執(zhí)行期間需要多個數(shù)據(jù)庫連接,各個連接都應(yīng)當(dāng)適當(dāng)?shù)募右躁P(guān)閉.即使只使用一個連接,也應(yīng)該在腳本的最后將其關(guān)閉,這是一種很好的實踐辦法.在任何情況下,都由close()負責(zé)關(guān)閉連接.PHP教程
2.處理連接差錯PHP教程
當(dāng)然,如果無法連接MySQL數(shù)據(jù)庫,那么不大可能在這個頁面繼續(xù)完成預(yù)期的工作了.因此,一定要注意監(jiān)視連接錯誤并相應(yīng)地做出反應(yīng).mysqli擴展包包含很多可以用來捕獲錯誤消息的特性,另外也可以使用異常來做到這一點.例如,可以使用mysqli_connect_errno()和mysqli_connect_error()辦法診斷并顯示一個MySQL連接錯誤的有關(guān)信息.PHP教程
關(guān)于mysqli的具體信息可以在這里查看:http://php.net/manual/zh/book.mysqli.phpPHP教程
與數(shù)據(jù)庫交互PHP教程
絕大多數(shù)查詢都與創(chuàng)立、獲取、更新和刪除任務(wù)有關(guān),這些任務(wù)統(tǒng)稱為CRUD.這里就開始總結(jié)CRUD相關(guān)的內(nèi)容.PHP教程
1.向數(shù)據(jù)庫發(fā)送查詢PHP教程
辦法query()負責(zé)將query發(fā)送給數(shù)據(jù)庫.它的定義如下:
PHP教程
可選參數(shù)resultmode可以用于修改這個辦法的行為,它接受兩個可取值.這篇文章總結(jié)了二者之間的區(qū)別.;下面是一個簡單的使用例子:PHP教程
2.插入、更新和刪除數(shù)據(jù)PHP教程
插入、更新和刪除使用的是insert、update和delete查詢完成的,其做法實際上與select查詢相同.示例代碼如下:PHP教程
3.釋放查詢內(nèi)存PHP教程
有時可能會獲取一個特別龐大的結(jié)果集,此時一旦完成處理,很有必要釋放該結(jié)果集所哀求的內(nèi)存.free()方法可以為我們完成這個任務(wù).例如:
PHP教程
4.解析查詢成果PHP教程
一旦執(zhí)行了查詢并準備好結(jié)果集,下面就可以解析獲取到的結(jié)果行了.你可以使用多個方法來獲取各行中的字段,具體選擇哪一個方法主要取決于個人愛好,因為只是引用字段的方法有所不同.PHP教程
(1)將成果放到對象中PHP教程
使用fetch_object()方法來完成.fetch_object()方法通常在一個循環(huán)中調(diào)用,每次調(diào)用都使得返回結(jié)果集中的下一行被填入一個對象,然后可以依照PHP典型的對象訪問語法來訪問這個對象.例如:
PHP教程
(2)使用索引數(shù)組和關(guān)聯(lián)數(shù)組獲取成果PHP教程
mysqli擴展包還允許通過fetch_array()辦法和fetch_row()辦法分別使用關(guān)聯(lián)數(shù)組和索引數(shù)組來管理結(jié)果集.fetch_array()辦法實際上能夠?qū)⒔Y(jié)果集的各行獲取為一個關(guān)聯(lián)數(shù)組、一個數(shù)字索引數(shù)組,或者同時包括二者,可以說,fetch_row()是fetch_array的一個子集.默認地,fetch_array()會同時獲取關(guān)聯(lián)數(shù)組和索引數(shù)組,可以在fetch_array中傳入?yún)?shù)來修改這個默認行為.PHP教程
MYSQLI_ASSOC,將行作為一個關(guān)聯(lián)數(shù)組返回,鍵由字段名表示,值由字段內(nèi)容表示;
MYSQLI_NUM,將行作為一個數(shù)字索引數(shù)組返回,其元素順序由查詢中指定的字段名順序決定;
MYSQLI_BOTH,便是默認的選項.PHP教程
確定所選擇的行和受影響的行PHP教程
通常希望能夠確定select查詢返回的行數(shù),或者受insert、update或delete影響的行數(shù).PHP教程
(1)確定返回的行數(shù)PHP教程
如果希望了解select查詢語句返回了若干行,num_rows屬性很有用.例如:
PHP教程
記住,num_rows只在確定select查詢所獲取的行數(shù)時有用,如果要得到受insert、update或delete影響的行數(shù),就要使用下面總結(jié)的affected_rows屬性.PHP教程
(2)確定受影響的行數(shù)PHP教程
affected_rows屬性用來獲取受insert、update或delete影響的行數(shù).代碼示例見上面的代碼.PHP教程
執(zhí)行數(shù)據(jù)庫事務(wù)PHP教程
有3個新辦法增強了PHP執(zhí)行MySQL事務(wù)的功能,分別為:PHP教程
1.autocommit函數(shù),啟用自動提交模式;PHP教程
autocommit()函數(shù)控制MySQL自動提交模式的行為,由傳入的參數(shù)決定啟動還是禁用自動提交;傳入TRUE,則啟動自動提交,傳入false則禁用自動提交.無論啟用還是禁用,勝利時都將返回TRUE,失敗時返回FALSE.PHP教程
2.commit函數(shù),提交事務(wù);將當(dāng)前事務(wù)提交給數(shù)據(jù)庫,成功時返回TRUE,不然返回FALSE.PHP教程
3.rollback函數(shù),回滾當(dāng)前事務(wù),成功時返回TRUE,不然返回FALSE.PHP教程
關(guān)于事務(wù),我后面還要繼續(xù)總結(jié),這里就扼要的總結(jié)了一下這三個API.PHP教程
不會停止PHP教程
這只是MySQL學(xué)習(xí)的開始,不會停止.再接再勵.PHP教程
維易PHP培訓(xùn)學(xué)院每天發(fā)布《PHP實例:PHP連接和操作MySQL數(shù)據(jù)庫基礎(chǔ)教程》等實戰(zhàn)技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培養(yǎng)人才。
轉(zhuǎn)載請注明本頁網(wǎng)址:
http://www.snjht.com/jiaocheng/14594.html