您好,登錄后才能下訂單哦!
使用PHP連接MySQL時需要用到哪些擴展函數?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
一、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()不能和其它處理結果集的函數混合調用。
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。