標籤:[1] mysq 指定 new gif 設定 函數返回 ide database
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());}?>選擇資料庫,並設定字元集(可選)
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‘);//設定字元集(一般不常用)?>執行SQL命令
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,則關閉上一個開啟的串連
php串連MySQL分析