亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > PHP > 正文

PHP數據庫操作

2020-03-22 18:36:26
字體:
來源:轉載
供稿:網友
  • PHP支持哪些數據庫

    PHP通過安裝相應的擴展來實現數據庫操作,現代html' target='_blank'>應用程序的設計離不開數據庫的應用,當前主流的數據庫有MsSQL,MySQL,Sybase,Db2,Oracle,PostgreSQL,Access等,這些數據庫PHP都能夠安裝擴展來支持,一般情況下常說的LAMP架構指的是:Linux、Apache、Mysql、PHP,因此Mysql數據庫在PHP中的應用非常廣泛,我們會在本章中簡單的了解Mysql的操作方法。

    數據庫擴展

    PHP中一個數據庫可能有一個或者多個擴展,其中既有官方的,也有第三方提供的。像Mysql常用的擴展有原生的mysql庫,也可以使用增強版的mysqli擴展,還可以使用PDO進行連接與操作。

    不同的擴展提供基本相近的操作方法,不同的是可能具備一些新特性,以及操作性能可能會有所不同。

    mysql擴展進行數據庫連接的方法:

    $link = mysql_connect('mysql_host', 'mysql_user', 'mysql_password');

    mysqli擴展:

    $link = mysqli_connect('mysql_host', 'mysql_user', 'mysql_password');

    PDO擴展

    $dsn = 'mysql:dbname=testdb;host=127.0.0.1';$user = 'dbuser';$password = 'dbpass';$dbh = new PDO($dsn, $user, $password);

    連接MySQL數據庫

    PHP要對數據庫進行操作,首先要做的是與數據庫建立連接,通常我們使用mysql_connect函數進行數據庫連接,該函數需要指定數據庫的地址,用戶名及密碼。

    $host = 'localhost';$user = 'code1';$link = mysql_connect($host, $user, $pass);$pass = '';

    PHP連接數據庫的方式類似于直接在命令行下通過進行連接,類似:mysql -hlocalhost -ucode1 -p,當連接成功以后,我們需要選擇一個操作的數據庫,通過mysql_select_db函數來選擇數據庫。

    mysql_select_db('code1');

    通常我們會先設置一下當前連接使用的字符編碼,一般的我們會使用utf8編碼。

    mysql_query("set names 'utf8'");

    通過上面的步驟,我們就與數據庫建立了連接,可以進行數據操作了。

    執行MySQL查詢

    在數據庫建立連接以后就可以進行查詢,采用mysql_query加sql語句的形式向數據庫發送查詢指令。

    $res = mysql_query('select * from user limit 1');

    對于查詢類的語句會返回一個資源句柄(resource),可以通過該資源獲取查詢結果集中的數據。

    $row = mysql_fetch_array($res);var_dump($row);

    默認的,PHP使用最近的數據庫連接執行查詢,但如果存在多個連接的情況,則可以通過參數指令從那個連接中進行查詢。

    $link1 = mysql_connect('127.0.0.1', 'code1', '');$link2 = mysql_connect('127.0.0.1', 'code1', '', true); //開啟一個新的連接$res = mysql_query('select * from user limit 1', $link1); //從第一個連接中查詢數據

    插入新數據到MySQL中

    當我們了解了如何使用mysql_query進行數據查詢以后,那么類似的,插入數據其實也是通過執行一個sql語句來實現,例如:

    $sql = "insert into user(name, age, class) values('李四', 18, '高三一班')";mysql_query($sql); //執行插入語句

    通常數據都是存儲在變量或者數組中,因此sql語句需要先進行字符串拼接得到。

    $name = '李四';$age = 18;$class = '高三一班';$sql = "insert into user(name, age, class) values('$name', '$age', '$class')";mysql_query($sql); //執行插入語句

    在mysql中,執行插入語句以后,可以得到自增的主鍵id,通過PHP的mysql_insert_id函數可以獲取該id。

    $uid = mysql_insert_id();

    這個id的作用非常大,通常可以用來判斷是否插入成功,或者作為關聯ID進行其他的數據操作。

    取得數據查詢結果

    通過前面的章節,我們發現PHP操作數據庫跟MySql客戶端上操作極為相似,先進行連接,然后執行sql語句,再然后獲取我們想要的結果集。

    PHP有多個函數可以獲取數據集中的一行數據,最常用的是mysql_fetch_array,可以通過設定參數來更改行數據的下標,默認的會包含數字索引的下標以及字段名的關聯索引下標。

    $sql = "select * from user limit 1";$result = mysql_query($sql);$row = mysql_fetch_array($result);

    可以通過設定參數MYSQL_NUM只獲取數字索引數組,等同于mysql_fetch_row函數,如果設定參數為MYSQL_ASSOC則只獲取關聯索引數組,等同于mysql_fetch_assoc函數。

    $row = mysql_fetch_row($result);$row = mysql_fetch_array($result, MYSQL_NUM); //這兩個方法獲取的數據是一樣的
    $row = mysql_fetch_assoc($result);$row = mysql_fetch_array($result, MYSQL_ASSOC);

    如果要獲取數據集中的所有數據,我們通過循環來遍歷整個結果集。

    $data = array();while ($row = mysql_fetch_array($result)) {    $data[] = $row;}

    查詢分頁數據

    上一節中,我們了解到通過循環可以獲取一個查詢的所有數據,在實際應用中,我們并不希望一次性獲取數據表中的所有數據,那樣性能會非常的低,因此會使用翻頁功能,每頁僅顯示10條或者20條數據。

    通過mysql的limit可以很容易的實現分頁,limit m,n表示從m行后取n行數據,在PHP中我們需要構造m與n來實現獲取某一頁的所有數據。

    假定當前頁為$page,每頁顯示$n條數據,那么m為當前頁前面所有的數據,既$m = ($page-1) * $n,在知道了翻頁原理以后,那么我們很容易通過構造SQL語句在PHP中實現數據翻頁。

    $page = 2;$n = 2;$m = ($page - 1) * $n;$sql = "select * from user limit $m, $n";$result = mysql_query($sql);//循環獲取當前頁的數據while ($row = mysql_fetch_assoc($result)) {$data = array();    $data[] = $row;}

    在上面的例子中,我們使用了$m與$n變量來表示偏移量與每頁數據條數,但我們推薦使用更有意義的變量名來表示,比如$pagesize, $start, $offset等,這樣更容易理解,有助于團隊協作開發。

    <?php//連接數據庫mysql_connect('127.0.0.1', 'code1', '');mysql_select_db('code1');mysql_query("set names 'utf8'");//預設翻頁參數$page = 2;$pagesize = 2;//在這里構建分頁查詢$count = ($page - 1) * $pagesize;$sql = "select * from user limit $count, $pagesize";//獲取翻頁數據$result = mysql_query($sql);$data = array();while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {    $data[] = $row;}echo '<pre>';print_r($data);echo '</pre>';

    更新與刪除數據

    數據的更新與刪除相對比較簡單,只需要構建好相應的sql語句,然后調用mysql_query執行就能完成相應的更新與刪除操作。

    $sql = "update user set name = '曹操' where id=2 limit 1";if (mysql_query($sql)) {    echo '更新成功';}

    同樣的刪除可以使用類似以下的代碼:

    $sql = "delete from user where id=2 limit 1";if (mysql_query($sql)) {    echo '刪除成功';}

    對于刪除與更新操作,可以通過mysql_affected_rows函數來獲取更新過的數據行數,如果數據沒有變化,則結果為0。

    $sql = "update user set name = '曹操' where id=2 limit 1";if (mysql_query($sql)) {    echo mysql_affected_rows();}

    關閉MySQL連接

    當數據庫操作完成以后,可以使用mysql_close關閉數據庫連接,默認的,當PHP執行完畢以后,會自動的關閉數據庫連接。

    mysql_close();

    雖然PHP會自動關閉數據庫連接,一般情況下已經滿足需求,但是在對性能要求比較高的情況下,可以在進行完數據庫操作之后盡快關閉數據庫連接,以節省資源,提高性能。

    在存在多個數據庫連接的情況下,可以設定連接資源參數來關閉指定的數據庫連接。

    $link = mysql_connect($host, $user, $pass);mysql_close($link);

    PHP編程

    鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

  • 發表評論 共有條評論
    用戶名: 密碼:
    驗證碼: 匿名發表
    亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
    亚洲va欧美va国产综合剧情| 国产精品电影一区| 91久久久久久久一区二区| 成人久久一区二区三区| 在线观看国产成人av片| 欧美性受xxxx黑人猛交| 中文字幕久久久av一区| 中文字幕欧美亚洲| 成人av.网址在线网站| 精品福利在线看| 精品国产91久久久久久| 亚洲欧美制服综合另类| 45www国产精品网站| 91成人在线观看国产| 国产91对白在线播放| 欧美视频一二三| 亚洲视频网站在线观看| 韩国精品久久久999| 在线观看久久久久久| 久久久久国产一区二区三区| 97色在线观看| 亚洲另类激情图| 国产z一区二区三区| 欧美一级高清免费播放| 日本视频久久久| 亚洲精品女av网站| 久久久久女教师免费一区| 国产亚洲xxx| 欧美国产视频一区二区| 亚洲精品福利资源站| 中文字幕在线看视频国产欧美在线看完整| 欧美一级电影免费在线观看| 日韩欧美中文免费| 国产成人精品在线| 国产91色在线播放| 国产日韩精品综合网站| 欧美性感美女h网站在线观看免费| 成人性生交大片免费看视频直播| 成人在线国产精品| 国产亚洲视频中文字幕视频| 精品视频久久久久久| 日本高清久久天堂| 国产精品美女呻吟| 欧美老少配视频| 国语自产在线不卡| 亚洲无亚洲人成网站77777| 亚洲最大成人在线| 午夜剧场成人观在线视频免费观看| 国产一区红桃视频| 精品视频久久久| 精品动漫一区二区三区| 亚洲美女喷白浆| 国产精品日韩精品| 日韩中文字幕在线免费观看| 91深夜福利视频| 91国自产精品中文字幕亚洲| 亚洲无亚洲人成网站77777| 亚洲精品v天堂中文字幕| 日韩在线观看免费网站| 国产视频综合在线| 欧美亚洲另类激情另类| 亚洲精品国产精品国产自| 久久不射热爱视频精品| 国产97在线观看| 国产精品一区二区久久| 中文字幕av日韩| 中文字幕久久久| 国产精品中文久久久久久久| 亚洲国产另类 国产精品国产免费| 91成人在线观看国产| 一本大道久久加勒比香蕉| 国产一区二区日韩精品欧美精品| 亚洲bt欧美bt日本bt| 欧美一级淫片videoshd| 亚洲国产精品久久91精品| 久久天堂电影网| 亚洲美女av在线播放| 国产一区二区三区18| 国产在线98福利播放视频| 亚洲一区二区三区777| 精品欧美aⅴ在线网站| 欧美精品亚州精品| 亚洲综合中文字幕在线观看| 中文欧美日本在线资源| 最近2019年手机中文字幕| 久久影视电视剧凤归四时歌| 国产日韩精品在线播放| 国产一区av在线| 日韩专区在线观看| 欧美最猛黑人xxxx黑人猛叫黄| 欧美日韩另类视频| 国产精品久久国产精品99gif| 欧美日韩福利在线观看| 久久久免费精品视频| 欧美大人香蕉在线| 国产精品狠色婷| 97视频在线播放| 久久亚洲精品小早川怜子66| 韩国v欧美v日本v亚洲| 91精品久久久久久久久| 精品亚洲一区二区三区| 久久av红桃一区二区小说| 亚洲香蕉伊综合在人在线视看| 亚洲成人a级网| 亚洲石原莉奈一区二区在线观看| 久久人人看视频| 国产精品久久久久久亚洲影视| 国产精品96久久久久久| 色婷婷亚洲mv天堂mv在影片| 亚洲国产精品yw在线观看| 久久久久久18| 成人免费观看49www在线观看| 最近2019年中文视频免费在线观看| 亚洲女性裸体视频| 亚洲国产精品成人va在线观看| 欧美午夜精品伦理| 国产精品一区二区三区在线播放| 国产精品视频xxx| 欧美激情视频一区二区三区不卡| 亚洲欧美在线第一页| 亚洲精品99久久久久中文字幕| 欧亚精品在线观看| 国产aⅴ夜夜欢一区二区三区| 国内精品久久久久久中文字幕| 欧美成人免费小视频| 综合网日日天干夜夜久久| 日韩一区二区在线视频| 国产精品精品一区二区三区午夜版| 国产中文欧美精品| 久久韩剧网电视剧| 亚州av一区二区| 亚洲最大av在线| 国产亚洲成av人片在线观看桃| 亚洲爱爱爱爱爱| 久久噜噜噜精品国产亚洲综合| 98精品国产高清在线xxxx天堂| 久久久av亚洲男天堂| 91影院在线免费观看视频| 国产精品羞羞答答| 国产精品三级久久久久久电影| 91人成网站www| 日韩av一区二区在线观看| 亚洲欧美日韩另类| 国产精品第1页| 日韩免费观看视频| 色777狠狠综合秋免鲁丝| 日韩在线欧美在线国产在线| 亚洲精品美女网站| 久久久久九九九九| 久久久成人精品视频| 日韩乱码在线视频| 欧美一区第一页| 亚洲欧美激情视频| 一本色道久久综合狠狠躁篇的优点| 久久精视频免费在线久久完整在线看| 91久久在线观看| 亚洲欧美精品suv| 国产精品一区二区女厕厕| 国产精品18久久久久久麻辣| 97在线日本国产| 日韩免费av一区二区| 国产网站欧美日韩免费精品在线观看| 亚洲欧美日韩中文视频| 日韩av影片在线观看|