擴(kuò)展mysql函數(shù)講義-創(chuàng)新互聯(lián)

下文主要給大家?guī)頂U(kuò)展mysql函數(shù)講義,希望這些文字能夠帶給大家實(shí)際用處,這也是我編輯這篇文章的主要目的。好了,廢話不多說,大家直接看下文吧。

為華州等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計(jì)制作服務(wù),及華州網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為網(wǎng)站設(shè)計(jì)、做網(wǎng)站、華州網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!

mysql由于其體積小、速度快、總體擁有成本低,尤其是具有開放源碼這一特點(diǎn),許多中小型網(wǎng)站為了減低網(wǎng)站總體擁有成本而選擇了mysql作為網(wǎng)站數(shù)據(jù)庫。而使用mysql數(shù)據(jù)庫管理系統(tǒng)與php腳本語言相結(jié)合的數(shù)據(jù)庫系統(tǒng)解決方案,正被越來越多的網(wǎng)站所采用,其中以LAMP(linux+apche+mysql+php)模式最為流行

PHP有標(biāo)準(zhǔn)的函數(shù)用來操作數(shù)據(jù)庫,mysqli是PHP5中新加的,是對(duì)mysql擴(kuò)展的改進(jìn)。但由于歷史遺留問題,好多老項(xiàng)目是在PHP4中使用mysql拓展開發(fā)的,如果在原有的項(xiàng)目上進(jìn)行二次開發(fā),都要求使用mysql拓展函數(shù)。如果是新設(shè)計(jì)的項(xiàng)目,推薦使用mysqli拓展或PDO技術(shù)。本文主要介紹PHP中的mysql拓展函數(shù)

 擴(kuò)展mysql函數(shù)講義

總括

在PHP腳本中操作MySQL數(shù)據(jù)庫的的幾個(gè)步驟如下:

1、連接MySQL數(shù)據(jù)庫云服務(wù)器,并判斷是否連接正確

2、選擇數(shù)據(jù)庫,并設(shè)置字符集(可選)

3、執(zhí)行SQL命令

4、處理結(jié)果集

5、關(guān)閉數(shù)據(jù)庫連接

連接MySQL數(shù)據(jù)庫云服務(wù)器,并判斷是否連接正確

mysql_connect()

mysql_connect()函數(shù)用來打開一個(gè)到 MySQL 服務(wù)器的連接。如果成功則返回一個(gè)資源, 或者在失敗時(shí)返回FALSE

resource mysql_connect ([ string $server [, string $username [, string $password [, bool $new_link [, int $client_flags ]]]]] )

mysql_errno()

mysql_errno()函數(shù)用于返回上一個(gè) MySQL 操作中的錯(cuò)誤信息的數(shù)字編碼

int mysql_errno ([ resource $link_identifier ] )

mysql_error()

mysql_error()函數(shù)用于返回上一個(gè) MySQL 操作產(chǎn)生的文本錯(cuò)誤信息。如果沒有指定連接資源號(hào),則使用上一個(gè)成功打開的連接從 MySQL 服務(wù)器提取錯(cuò)誤信息

string mysql_error ([ resource $link_identifier ] )

<?php$link = mysql_connect('localhost','root','123456');var_dump($link);//resource(3, mysql link)if(!$link){    die('連接失?。?#39;.mysql_error());
}?>

選擇數(shù)據(jù)庫,并設(shè)置字符集(可選)

通常,數(shù)據(jù)庫的創(chuàng)建工作都是先由數(shù)據(jù)庫管理員(DBA)建立,再由PHP程序員在腳本中使用。例如,創(chuàng)建一個(gè)名為bookstore的數(shù)據(jù)庫

使用PHP腳本建立與mysql服務(wù)器的連接之后,為了避免每次調(diào)用PHP的mysql擴(kuò)展函數(shù)都指定目標(biāo)數(shù)據(jù)庫,最好先用mysql_select_db()函數(shù)為后續(xù)操作選定一個(gè)默認(rèn)數(shù)據(jù)庫,這個(gè)函數(shù)與SQL命令"USE bookstore"功能相似

mysql_select_db()

mysql_select_db()函數(shù)用于選擇 MySQL 數(shù)據(jù)庫

bool mysql_select_db ( string $database_name [, resource $ link_identifier ] )

<?php$link = mysql_connect('localhost','root','zhiaihebe0123');var_dump($link);//resource(3, mysql link)if(!$link){    die('連接失?。?#39;.mysql_error());
}mysql_select_db('bookstore',$link) or die('不能選定數(shù)據(jù)庫bookstore:' .mysql_error());mysql_query('set names utf8');//設(shè)置字符集(一般不常用)?>

執(zhí)行SQL命令

首先,在bookstore數(shù)據(jù)庫中創(chuàng)建一張books數(shù)據(jù)表

CREATE TABLE books(
    id INT NOT NULL AUTO_INCREMENT,
    bookname VARCHAR(80) NOT NULL DEFAULT '',
    publisher VARCHAR(60) NOT NULL DEFAULT '',
    author VARCHAR(20) NOT NULL DEFAULT '',
    price DOUBLE(5,2) NOT NULL DEFAULT 0.00,
    ptime INT NOT NULL DEFAULT 0,
    pic CHAR(24) NOT NULL DEFAULT '',
    detail TEXT,
    PRIMARY KEY(id));
));

擴(kuò)展mysql函數(shù)講義

在PHP中,只要把SQL命令作為一個(gè)字符串傳遞給mysql_query()函數(shù),就會(huì)將其發(fā)送到MYSQL服務(wù)器并執(zhí)行

mysql_query()

mysql_query()函數(shù)用于發(fā)送一條 MySQL 查詢。mysql_query() 僅對(duì) SELECT,SHOW,DESCRIBE, EXPLAIN 和其他語句返回一個(gè)resource,如果查詢出現(xiàn)錯(cuò)誤則返回 FALSE;對(duì)于其它類型的 SQL 語句,比如INSERT, UPDATE, DELETE, DROP 之類, mysql_query() 在執(zhí)行成功時(shí)返回 TRUE,出錯(cuò)時(shí)返回 FALSE

resource mysql_query ( string $query [, resource $link_identifier = NULL ] )

將要插入的3條INSERT語句聲明為一個(gè)字符串

$insert = "insert into books(bookname, publisher, author, price, detail) values
('PHP','電子工業(yè)出版社','張三','80.00','PHP相關(guān)'),
('ASP','電子工業(yè)出版社','李四','90.00','ASP相關(guān)'),
('JSP','電子工業(yè)出版社','王五','70.00','JSP相關(guān)')";

使用mysql_query()函數(shù)發(fā)送INSERT語句,如果成功返回true,失敗則返回false

$result = mysql_query($insert);var_dump($result);

擴(kuò)展mysql函數(shù)講義

mysql_affected_rows()

mysql_affected_rows()函數(shù)用于取得前一次 MySQL 操作所影響的記錄行數(shù)。執(zhí)行成功則返回受影響的行的數(shù)目,如果最近一次查詢失敗的話,函數(shù)返回 -1

int mysql_affected_rows ([ resource $link_identifier = NULL ] )
var_dump(mysql_affected_rows());//int3

通常通過判斷mysql_affected_rows()函數(shù)的值是否大于0來確定數(shù)據(jù)操作是否成功

mysql_insert_id()

mysql_insert_id()函數(shù)用來取得上一步 INSERT 操作產(chǎn)生的 ID

int mysql_insert_id ([ resource $link_identifier ] )

<?php$insert = "insert into books(bookname, publisher, author, price, detail) values
('PHP','電子工業(yè)出版社','張三','80.00','PHP相關(guān)'),
('ASP','電子工業(yè)出版社','李四','90.00','ASP相關(guān)'),
('JSP','電子工業(yè)出版社','王五','70.00','JSP相關(guān)')";$result = mysql_query($insert);if($result && mysql_affected_rows() > 0){    //刷新頁面兩次后,相當(dāng)于插入了兩次數(shù)據(jù)。頁面顯示數(shù)據(jù)記錄插入成功,最后一條插入的數(shù)據(jù)記錄id為:4
    echo "數(shù)據(jù)記錄插入成功,最后一條插入的數(shù)據(jù)記錄id為:".mysql_insert_id()."<br>";
}else{    //若在數(shù)據(jù)表刪除后,則顯示數(shù)據(jù)記錄插入失敗,錯(cuò)誤號(hào):1146,錯(cuò)誤原因:La table 'bookstore.books' n'existe pas
    echo "數(shù)據(jù)記錄插入失敗,錯(cuò)誤號(hào):".mysql_errno().",錯(cuò)誤原因:".mysql_error()."<br>";
}?>

實(shí)際上,最后一個(gè)id應(yīng)該為6,但是由于4、5、6三條語句是同時(shí)插入的,這時(shí)顯示的是第一個(gè)id為4

擴(kuò)展mysql函數(shù)講義

下面,將id為4的記錄的作者修改為小白

$result = mysql_query("UPDATE books SET author='小白' WHERE id='4'");if($result && mysql_affected_rows() > 0){    echo "數(shù)據(jù)記錄修改成功<br>";
}else{    echo "數(shù)據(jù)記錄修改失敗,錯(cuò)誤號(hào):".mysql_errno().",錯(cuò)誤原因:".mysql_error()."<br>";
}

擴(kuò)展mysql函數(shù)講義

下面,刪除作者為李四的記錄

$result = mysql_query("DELETE FROM books WHERE author='李四'");if($result && mysql_affected_rows() > 0){    echo "數(shù)據(jù)記錄刪除成功<br>";
}else{    echo "數(shù)據(jù)記錄刪除失敗,錯(cuò)誤號(hào):".mysql_errno().",錯(cuò)誤原因:".mysql_error()."<br>";
}

擴(kuò)展mysql函數(shù)講義

處理結(jié)果集

在PHP腳本中執(zhí)行SELECT查詢命令,也是調(diào)用mysql_query()函數(shù),但和執(zhí)行DML不同的是,執(zhí)行SELECT命令之后,mysql_query()函數(shù)的返回值是一個(gè)PHP資源的引用指針(結(jié)果集)。這個(gè)返回值可以在各種結(jié)果集處理函數(shù)中,對(duì)結(jié)果數(shù)據(jù)表的各個(gè)字段進(jìn)行處理

mysql_num_fields()

mysql_num_fields()函數(shù)取得結(jié)果集中字段的數(shù)目

int mysql_num_fields ( resource $result )

mysql_num_rows()

mysql_num_rows()函數(shù)取得結(jié)果集中行的數(shù)目

int mysql_num_rows ( resource $result )
$result = mysql_query("SELECT * FROM books");$rows = mysql_num_rows($result);$cols = mysql_num_fields($result);var_dump($rows,$cols);//int 4 int 8

從結(jié)果中可以看出,該結(jié)果集總共有4行8列

 擴(kuò)展mysql函數(shù)講義

如果需要訪問結(jié)果集中的數(shù)據(jù),可以選用mysql_fetch_row()、mysql_fetch_assoc()、mysql_fetch_array()、mysql_fetch_object()這4個(gè)函數(shù)中的任意一個(gè)

mysql_fetch_row()

mysql_fetch_row()函數(shù)從結(jié)果集中取得一行作為枚舉數(shù)組

array mysql_fetch_row ( resource $result )

如果需要訪問結(jié)果集中的數(shù)據(jù),可以選用mysql_fetch_row()、mysql_fetch_assoc()、mysql_fetch_array()、mysql_fetch_object()這4個(gè)函數(shù)中的任意一個(gè)

mysql_fetch_row()

mysql_fetch_row()函數(shù)從結(jié)果集中取得一行作為枚舉數(shù)組

array mysql_fetch_row ( resource $result )

$result = mysql_query("SELECT * FROM books");$row = mysql_fetch_row($result);//Array ( [0] => 1 [1] => PHP [2] => 電子工業(yè)出版社 [3] => 張三 [4] => 80.00 [5] => 0 [6] => [7] => PHP相關(guān) )print_r($row);$row = mysql_fetch_row($result);//Array ( [0] => 3 [1] => JSP [2] => 電子工業(yè)出版社 [3] => 王五 [4] => 70.00 [5] => 0 [6] => [7] => JSP相關(guān) )print_r($row);

mysql_fetch_assoc()

mysql_fetch_assoc()函數(shù)從結(jié)果集中取得一行作為關(guān)聯(lián)數(shù)組

array mysql_fetch_assoc ( resource $result )

$result = mysql_query("SELECT * FROM books");$assoc = mysql_fetch_assoc($result);//Array ( [id] => 1 [bookname] => PHP [publisher] => 電子工業(yè)出版社 [author] => 張三 [price] => 80.00 [ptime] => 0 [pic] => [detail] => PHP相關(guān) )print_r($assoc);$assoc = mysql_fetch_assoc($result);//Array ( [id] => 3 [bookname] => JSP [publisher] => 電子工業(yè)出版社 [author] => 王五 [price] => 70.00 [ptime] => 0 [pic] => [detail] => JSP相關(guān) )print_r($assoc);

mysql_fetch_array()

mysql_fetch_array()函數(shù)從結(jié)果集中取得一行作為關(guān)聯(lián)數(shù)組,或數(shù)字?jǐn)?shù)組,或二者兼有。mysql_fetch_array() 中可選的第二個(gè)參數(shù) result_type 是一個(gè)常量,可以接受以下值:MYSQL_ASSOC,MYSQL_NUM 和 MYSQL_BOTH,默認(rèn)值是 MYSQL_BOTH

array mysql_fetch_array ( resource $result [, int $ result_type ] )

$result = mysql_query("SELECT * FROM books");$array = mysql_fetch_array($result);//Array ( [0] => 1 [id] => 1 [1] => PHP [bookname] => PHP [2] => 電子工業(yè)出版社 [publisher] => 電子工業(yè)出版社 [3] => 張三 [author] => 張三 [4] => 80.00 [price] => 80.00 [5] => 0 [ptime] => 0 [6] => [pic] => [7] => PHP相關(guān) [detail] => PHP相關(guān) )print_r($array);$array = mysql_fetch_array($result);// Array ( [0] => 3 [id] => 3 [1] => JSP [bookname] => JSP [2] => 電子工業(yè)出版社 [publisher] => 電子工業(yè)出版社 [3] => 王五 [author] => 王五 [4] => 70.00 [price] => 70.00 [5] => 0 [ptime] => 0 [6] => [pic] => [7] => JSP相關(guān) [detail] => JSP相關(guān) )print_r($array);

mysql_fetch_object()

mysql_fetch_object()函數(shù)從結(jié)果集中取得一行作為對(duì)象

object mysql_fetch_object ( resource $result )

$result = mysql_query("SELECT * FROM books");$object = mysql_fetch_object($result);//stdClass Object ( [id] => 1 [bookname] => PHP [publisher] => 電子工業(yè)出版社 [author] => 張三 [price] => 80.00 [ptime] => 0 [pic] => [detail] => PHP相關(guān) )print_r($object);$object = mysql_fetch_object($result);//stdClass Object ( [id] => 3 [bookname] => JSP [publisher] => 電子工業(yè)出版社 [author] => 王五 [price] => 70.00 [ptime] => 0 [pic] => [detail] => JSP相關(guān) )print_r($object);

對(duì)于上面的四個(gè)函數(shù)來說,默認(rèn)指針都指向第一行記錄。在獲取一行記錄后,指針會(huì)自動(dòng)下移。如果是最后一委,則函數(shù)返回false。一般地,mysql_fetch_assoc()這種返回關(guān)聯(lián)數(shù)組形式的函數(shù)較常用

mysql_data_seek()

mysql_data_seek()函數(shù)可以移動(dòng)內(nèi)部結(jié)果的指針

[注意]$row_number從0開始

bool mysql_data_seek ( resource $result , int $row_number )

$result = mysql_query("SELECT * FROM books");$assoc = mysql_fetch_assoc($result);mysql_data_seek($result , 2);$assoc = mysql_fetch_assoc($result);Array ( [id] => 4 [bookname] => PHP [publisher] => 電子工業(yè)出版社 [author] => 小白 [price] => 80.00 [ptime] => 0 [pic] => [detail] => PHP相關(guān) )print_r($assoc);mysql_data_seek($result , 0);$assoc = mysql_fetch_assoc($result);//Array ( [id] => 1 [bookname] => PHP [publisher] => 電子工業(yè)出版社 [author] => 張三 [price] => 80.00 [ptime] => 0 [pic] => [detail] => PHP相關(guān) )print_r($assoc);

下面使用while循環(huán)和mysql_fetch_assoc()函數(shù)將結(jié)果集以表格的形式顯示出來

<style>
.table{
    border:1px solid black;
    border-collapse:collapse;
    table-layout:fixed;
}</style>$result = mysql_query("SELECT id,bookname,publisher,author,price FROM books");echo '<table border="1" width="800" class="table">';echo '<tr>';echo '<th>編號(hào)</th>';echo '<th>書名</th>';echo '<th>出版社</th>';echo '<th>作者</th>';echo '<th>價(jià)格</th>';echo '</tr>';while($assoc = mysql_fetch_assoc($result)) {    echo '<tr>';    echo "<td>{$assoc['id']}</td>";    echo "<td>{$assoc['bookname']}</td>";    echo "<td>{$assoc['publisher']}</td>";    echo "<td>{$assoc['author']}</td>";    echo "<td>{$assoc['price']}</td>";    echo '</tr>';
}echo '</table>';

擴(kuò)展mysql函數(shù)講義

mysql_free_result()

mysql_free_result()函數(shù)用于釋放結(jié)果內(nèi)存

bool mysql_free_result ( resource $result )

mysql_free_result() 僅需要在考慮到返回很大的結(jié)果集時(shí)會(huì)占用多少內(nèi)存時(shí)調(diào)用。在腳本結(jié)束后所有關(guān)聯(lián)的內(nèi)存都會(huì)被自動(dòng)釋放

關(guān)閉數(shù)據(jù)庫連接

mysql_close()

mysql_close()函數(shù)用于關(guān)閉 MySQL 連接

bool mysql_close ([ resource $link_identifier = NULL ] )

mysql_close() 關(guān)閉指定的連接標(biāo)識(shí)所關(guān)聯(lián)的到 MySQL 服務(wù)器的非持久連接。如果沒有指定 link_identifier,則關(guān)閉上一個(gè)打開的連接

所以,一個(gè)比較完整的php操作數(shù)據(jù)庫擴(kuò)展函數(shù)的程序如下所示

對(duì)于以上關(guān)于擴(kuò)展mysql函數(shù)講義,大家是不是覺得非常有幫助。如果需要了解更多內(nèi)容,請(qǐng)繼續(xù)關(guān)注我們的行業(yè)資訊,相信你會(huì)喜歡上這些內(nèi)容的。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

分享文章:擴(kuò)展mysql函數(shù)講義-創(chuàng)新互聯(lián)
本文路徑:http://www.muchs.cn/article0/coipoo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號(hào)、建站公司商城網(wǎng)站、微信小程序企業(yè)建站、網(wǎng)站導(dǎo)航

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)