中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

擴展mysql函數講義

發布時間:2020-04-30 09:36:13 來源:億速云 閱讀:200 作者:三月 欄目:建站服務器

下文主要給大家帶來擴展mysql函數講義,希望這些文字能夠帶給大家實際用處,這也是我編輯這篇文章的主要目的。好了,廢話不多說,大家直接看下文吧。                                                      

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

  PHP有標準的函數用來操作數據庫,mysqli是PHP5中新加的,是對mysql擴展的改進。但由于歷史遺留問題,好多老項目是在PHP4中使用mysql拓展開發的,如果在原有的項目上進行二次開發,都要求使用mysql拓展函數。如果是新設計的項目,推薦使用mysqli拓展或PDO技術。本文主要介紹PHP中的mysql拓展函數

 擴展mysql函數講義

總括

  在PHP腳本中操作MySQL數據庫的的幾個步驟如下:

  1、連接MySQL數據庫云服務器,并判斷是否連接正確

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

  3、執行SQL命令

  4、處理結果集

  5、關閉數據庫連接

 

連接MySQL數據庫云服務器,并判斷是否連接正確

mysql_connect()

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

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

mysql_errno()

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

int mysql_errno ([ resource $link_identifier ] )

mysql_error()

  mysql_error()函數用于返回上一個 MySQL 操作產生的文本錯誤信息。如果沒有指定連接資源號,則使用上一個成功打開的連接從 MySQL 服務器提取錯誤信息

string mysql_error ([ resource $link_identifier ] )

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

 

選擇數據庫,并設置字符集(可選)

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

  使用PHP腳本建立與mysql服務器的連接之后,為了避免每次調用PHP的mysql擴展函數都指定目標數據庫,最好先用mysql_select_db()函數為后續操作選定一個默認數據庫,這個函數與SQL命令"USE bookstore"功能相似

mysql_select_db()

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

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('連接失敗:'.mysql_error());
}mysql_select_db('bookstore',$link) or die('不能選定數據庫bookstore:' .mysql_error());mysql_query('set names utf8');//設置字符集(一般不常用)?>

擴展mysql函數講義

 

執行SQL命令

  首先,在bookstore數據庫中創建一張books數據表

擴展mysql函數講義

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));
));

擴展mysql函數講義

擴展mysql函數講義

  在PHP中,只要把SQL命令作為一個字符串傳遞給mysql_query()函數,就會將其發送到MYSQL服務器并執行

mysql_query()

  mysql_query()函數用于發送一條 MySQL 查詢。mysql_query() 僅對 SELECT,SHOW,DESCRIBE, EXPLAIN 和其他語句返回一個resource,如果查詢出現錯誤則返回 FALSE;對于其它類型的 SQL 語句,比如INSERT, UPDATE, DELETE, DROP 之類, mysql_query() 在執行成功時返回 TRUE,出錯時返回 FALSE

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

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

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

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

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

擴展mysql函數講義

mysql_affected_rows()

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

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

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

mysql_insert_id()

  mysql_insert_id()函數用來取得上一步 INSERT 操作產生的 ID

int mysql_insert_id ([ resource $link_identifier ] )

擴展mysql函數講義

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

擴展mysql函數講義

  實際上,最后一個id應該為6,但是由于4、5、6三條語句是同時插入的,這時顯示的是第一個id為4

擴展mysql函數講義

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

擴展mysql函數講義

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

擴展mysql函數講義

擴展mysql函數講義

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

擴展mysql函數講義

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

擴展mysql函數講義

擴展mysql函數講義

 

處理結果集

  在PHP腳本中執行SELECT查詢命令,也是調用mysql_query()函數,但和執行DML不同的是,執行SELECT命令之后,mysql_query()函數的返回值是一個PHP資源的引用指針(結果集)。這個返回值可以在各種結果集處理函數中,對結果數據表的各個字段進行處理

mysql_num_fields()

  mysql_num_fields()函數取得結果集中字段的數目

int mysql_num_fields ( resource $result )

mysql_num_rows()

  mysql_num_rows()函數取得結果集中行的數目

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

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

 擴展mysql函數講義

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

mysql_fetch_row()

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

array mysql_fetch_row ( resource $result )

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

mysql_fetch_row()

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

array mysql_fetch_row ( resource $result )

擴展mysql函數講義

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

擴展mysql函數講義

mysql_fetch_assoc()

  mysql_fetch_assoc()函數從結果集中取得一行作為關聯數組

array mysql_fetch_assoc ( resource $result )

擴展mysql函數講義

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

擴展mysql函數講義

mysql_fetch_array()

  mysql_fetch_array()函數從結果集中取得一行作為關聯數組,或數字數組,或二者兼有。mysql_fetch_array() 中可選的第二個參數 result_type 是一個常量,可以接受以下值:MYSQL_ASSOC,MYSQL_NUM 和 MYSQL_BOTH,默認值是 MYSQL_BOTH

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

擴展mysql函數講義

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

擴展mysql函數講義

mysql_fetch_object()

  mysql_fetch_object()函數從結果集中取得一行作為對象

object mysql_fetch_object ( resource $result )

擴展mysql函數講義

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

擴展mysql函數講義

  對于上面的四個函數來說,默認指針都指向第一行記錄。在獲取一行記錄后,指針會自動下移。如果是最后一委,則函數返回false。一般地,mysql_fetch_assoc()這種返回關聯數組形式的函數較常用

mysql_data_seek()

  mysql_data_seek()函數可以移動內部結果的指針

  [注意]$row_number從0開始

bool mysql_data_seek ( resource $result , int $row_number )

擴展mysql函數講義

$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] => 電子工業出版社 [author] => 小白 [price] => 80.00 [ptime] => 0 [pic] => [detail] => PHP相關 )print_r($assoc);mysql_data_seek($result , 0);$assoc = mysql_fetch_assoc($result);//Array ( [id] => 1 [bookname] => PHP [publisher] => 電子工業出版社 [author] => 張三 [price] => 80.00 [ptime] => 0 [pic] => [detail] => PHP相關 )print_r($assoc);

擴展mysql函數講義

  下面使用while循環和mysql_fetch_assoc()函數將結果集以表格的形式顯示出來

擴展mysql函數講義

<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>編號</th>';echo '<th>書名</th>';echo '<th>出版社</th>';echo '<th>作者</th>';echo '<th>價格</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>';

擴展mysql函數講義

擴展mysql函數講義

mysql_free_result()

  mysql_free_result()函數用于釋放結果內存

bool mysql_free_result ( resource $result )

  mysql_free_result() 僅需要在考慮到返回很大的結果集時會占用多少內存時調用。在腳本結束后所有關聯的內存都會被自動釋放

 

關閉數據庫連接

mysql_close()

  mysql_close()函數用于關閉 MySQL 連接

bool mysql_close ([ resource $link_identifier = NULL ] )

  mysql_close() 關閉指定的連接標識所關聯的到 MySQL 服務器的非持久連接。如果沒有指定 link_identifier,則關閉上一個打開的連接

  所以,一個比較完整的php操作數據庫擴展函數的程序如下所示

擴展mysql函數講義

對于以上關于擴展mysql函數講義,大家是不是覺得非常有幫助。如果需要了解更多內容,請繼續關注我們的行業資訊,相信你會喜歡上這些內容的。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

陇川县| 台江县| 高碑店市| 康平县| 米林县| 珠海市| 广西| 徐水县| 云安县| 佛学| 紫云| 英超| 丰镇市| 蛟河市| 青阳县| 南阳市| 永康市| 鄂尔多斯市| 牙克石市| 建平县| 河曲县| 株洲市| 广汉市| 柘城县| 苏尼特右旗| 钦州市| 衡水市| 乐山市| 叶城县| 永丰县| 台东县| 泉州市| 双鸭山市| 怀宁县| 罗江县| 应用必备| 昌乐县| 赤峰市| 永年县| 邵东县| 翁源县|