標籤:php
來源:http://www.ido321.com/1024.html
一、PHP串連資料庫及基本操作
MySQL採用的是’客戶機/伺服器’架構。使用PHP安裝的MySQL擴充函數,和直接使用用戶端軟體區訪問MySQL資料庫伺服器,原理一樣,都需要向MySQL管理系統發送SQL命令,然後將結果返回給使用者。
在PHP中,SQL分為兩類(查看SQL語句分類):一是有返回結果集的DQL語句,如select/desc 表名,執行完畢之後,需要PHP處理結果集;二是沒有結果集的,如DML、DDL等,但是DML語句執行成功後對資料表的記錄有影響。
<?php//串連資料庫,常用參數是主機名稱、使用者名稱和密碼$link = mysql_connect(‘localhost‘,‘root‘,‘123456‘);//判斷是否串連成功if(!$link){die(‘串連失敗‘.mysql.error()); //串連成功返回資源標識符,失敗返回false,mysql_error顯示錯誤資訊}//選擇資料庫,mysql_error()只在調試中使用,再部署項目時就不要了,不然會泄露資料庫資訊mysql_select_db(‘test‘) or die(‘選擇資料庫失敗‘.mysql_error());//mysql_query()可以設定字元集和執行SQL語句mysql_query(‘set names utf-8‘);$sql = ‘insert into test(id,name) values("1","dwqs")‘;$result = mysql_query($sql); //執行sql返回結果集//處理結果集,insert屬於DML,會對錶的記錄有影響if($result && mysql_affected_rows() > 0){//mysql_insert_id()返回最後一條新紀錄的auto_increment值echo ‘插入資料成功‘.mysql_insert_id().‘<br/>‘;}else{echo ‘插入資料失敗,錯誤號碼:‘.mysql_errno().‘錯誤資訊:‘.mysql_error().‘<br/>‘;}//關閉串連mysql_close($link);?>
二、PHP處理select查詢結果集
在PHP中執行select語句返回一個結果集,可以用於對各個欄位的處理
$result = mysql_query(‘select * from test‘);//擷取記錄行的個數$rows = mysql_num_rows($result);//擷取欄位個數,即資料列$cols = mysql_num_fields($result);
如果需要訪問結果集中的資料,可以使用下列四個函數中的一個(均以結果集資源符作為參數,並自動返回下一條記錄,在表末尾時返回false)
1、mysql_fetch_row():該函數將一條結果記錄返回並以一個普通的索引資料儲存
2、mysql_fetch_assoc():從結果集中取得一行作為關聯資料儲存
3、mysql_fetch_array():從結果集中取得一行作為關聯陣列,或數字數組,或二者兼有。可以使用MYSQL_ASSOC(關聯陣列形式)、MYSQL_NUM(索引數組形式)和MYSQL_BOTH作為第二個參數,指定返回的資料形態。
4、mysql_fetch_object():從結果集中取得一行作為對象,各個欄位以對象方式訪問。
建議:沒有特殊要求,不要使用mysql_fetch_array(),可以使用mysql_fetch_row()或者mysql_fetch_assoc()實現同樣的功能,且效率高。
另外也有三個與結果集相關的常用函數
5、mysql_data_seek(int $num):移動內部結果的指標,$num是想要設定的新的結果集指標的行數。
6、mysql_fetch_lengths(resource $result):取得結果集中每個輸出的長度
7、mysql_result(resource $result , int$row[,mixed $field]):返回 MySQL 結果集中一個單元的內容。欄位參數可以是欄位的位移量或者欄位名,或者是欄位表點欄位名(tablename.fieldname)。如果給列起了別名(’select foo as bar from…’),則用別名替代列名。調用mysql_result()不能和其它處理結果集的函數混合調用。
下一篇:如何利用WordPress建立自訂註冊表單外掛程式
PHP的MySQL擴充:PHP訪問MySQL的常用擴充函數