php串連MySQL分析

來源:互聯網
上載者:User

標籤:[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分析

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.