1、連接MySQL數據庫服務器,並判斷是否連接正確
2、選擇數據庫,並設置字符集(可選)
3、執行SQL命令
4、處理結果集
5、關閉數據庫連接
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()); } ?>
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_query()
在PHP中,mysql_query()函數會將sql語句發送到MYSQL服務器並執行,mysql_query() 僅對 SELECT,SHOW,DESCRIBE, EXPLAIN 和其他語句返回一個resource,如果查詢出現錯誤則返回 FALSE;對於其它類型的 SQL 語句,比如INSERT, UPDATE, DELETE, DROP 之類, mysql_query() 在執行成功時返回 TRUE,出錯時返回 FALSE
mysql_affected_rows()
mysql_affected_rows()函數用於取得前一次 MySQL 操作所影響的記錄行數。執行成功則返回受影響的行的數目,如果最近一次查詢失敗的話,函數返回 -1
var_dump(mysql_affected_rows());//int3
通常通過判斷mysql_affected_rows()函數的值是否大於0來確定數據操作是否成功
mysql_insert_id()
mysql_insert_id()函數用來取得上一步 INSERT 操作產生的 ID
<?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>"; } ?>
實際上,由於4、5、6三條語句是同時插入的,這時顯示的是第一個id為4
在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
mysql_fetch_row()
mysql_fetch_row()函數從結果集中取得一行作為枚舉數組
array mysql_fetch_row ( resource $result )
$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_fetch_assoc()
mysql_fetch_assoc()函數從結果集中取得一行作為關聯數組
array mysql_fetch_assoc ( resource $result )
$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_fetch_array()
mysql_fetch_array()函數從結果集中取得一行作為關聯數組,或數字數組,或二者兼有。
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,則關閉上一個打開的連接