php 扩展 mysql_PHP链接MySQL的常用扩展函数
一、PHP連接數(shù)據(jù)庫(kù)及基本操作
MySQL采用的是'客戶機(jī)/服務(wù)器'架構(gòu)。使用PHP安裝的MySQL擴(kuò)展函數(shù),和直接使用客戶端軟件區(qū)訪問(wèn)MySQL數(shù)據(jù)庫(kù)服務(wù)器,原理一樣,都需要向MySQL管理系統(tǒng)發(fā)送SQL命令,然后將結(jié)果返回給用戶。
在PHP中,SQL分為兩類(查看SQL語(yǔ)句分類):一是有返回結(jié)果集的DQL語(yǔ)句,如select/desc 表名,執(zhí)行完畢之后,需要PHP處理結(jié)果集;二是沒(méi)有結(jié)果集的,如DML、DDL等,但是DML語(yǔ)句執(zhí)行成功后對(duì)數(shù)據(jù)表的記錄有影響。
//連接數(shù)據(jù)庫(kù),常用參數(shù)是主機(jī)名、用戶名和密碼
$link = mysql_connect('localhost','root','123456');
//判斷是否連接成功
if(!$link)
{
die('連接失敗'.mysql.error()); //連接成功返回資源標(biāo)識(shí)符,失敗返回false,mysql_error顯示錯(cuò)誤信息
}
//選擇數(shù)據(jù)庫(kù),mysql_error()只在調(diào)試中使用,再部署項(xiàng)目時(shí)就不要了,不然會(huì)泄露數(shù)據(jù)庫(kù)信息
mysql_select_db('test') or die('選擇數(shù)據(jù)庫(kù)失敗'.mysql_error());
//mysql_query()可以設(shè)置字符集和執(zhí)行SQL語(yǔ)句
mysql_query('set names utf-8');
$sql = 'insert into test(id,name) values("1","dwqs")';
$result = mysql_query($sql); //執(zhí)行sql返回結(jié)果集
//處理結(jié)果集,insert屬于DML,會(huì)對(duì)表的記錄有影響
if($result && mysql_affected_rows() > 0)
{
//mysql_insert_id()返回最后一條新紀(jì)錄的auto_increment值
echo '插入數(shù)據(jù)成功'.mysql_insert_id().'
';
}
else
{
echo '插入數(shù)據(jù)失敗,錯(cuò)誤號(hào):'.mysql_errno().'錯(cuò)誤信息:'.mysql_error().'
';
}
//關(guān)閉連接
mysql_close($link);
?>
二、PHP處理select查詢結(jié)果集
在PHP中執(zhí)行select語(yǔ)句返回一個(gè)結(jié)果集,可以用于對(duì)各個(gè)字段的處理
$result = mysql_query('select * from test');
//獲取記錄行的個(gè)數(shù)
$rows = mysql_num_rows($result);
//獲取字段個(gè)數(shù),即數(shù)據(jù)列
$cols = mysql_num_fields($result);
如果需要訪問(wèn)結(jié)果集中的數(shù)據(jù),可以使用下列四個(gè)函數(shù)中的一個(gè)(均以結(jié)果集資源符作為參數(shù),并自動(dòng)返回下一條記錄,在表末尾時(shí)返回false)
1、mysql_fetch_row():該函數(shù)將一條結(jié)果記錄返回并以一個(gè)普通的索引數(shù)據(jù)保存
2、mysql_fetch_assoc():從結(jié)果集中取得一行作為關(guān)聯(lián)數(shù)據(jù)保存
3、mysql_fetch_array():從結(jié)果集中取得一行作為關(guān)聯(lián)數(shù)組,或數(shù)字?jǐn)?shù)組,或二者兼有。可以使用MYSQL_ASSOC(關(guān)聯(lián)數(shù)組形式)、MYSQL_NUM(索引數(shù)組形式)和MYSQL_BOTH作為第二個(gè)參數(shù),指定返回的數(shù)據(jù)形態(tài)。
4、mysql_fetch_object():從結(jié)果集中取得一行作為對(duì)象,各個(gè)字段以對(duì)象方式訪問(wèn)。
建議:沒(méi)有特殊要求,不要使用mysql_fetch_array(),可以使用mysql_fetch_row()或者mysql_fetch_assoc()實(shí)現(xiàn)同樣的功能,且效率高。
另外也有三個(gè)與結(jié)果集相關(guān)的常用函數(shù)
5、mysql_data_seek(int $num):移動(dòng)內(nèi)部結(jié)果的指針,$num是想要設(shè)定的新的結(jié)果集指針的行數(shù)。
6、mysql_fetch_lengths(resource $result):取得結(jié)果集中每個(gè)輸出的長(zhǎng)度
7、mysql_result(resource $result , int $row[,mixed $field]):返回 MySQL 結(jié)果集中一個(gè)單元的內(nèi)容。字段參數(shù)可以是字段的偏移量或者字段名,或者是字段表點(diǎn)字段名(tablename.fieldname)。如果給列起了別名('select foo as bar from…'),則用別名替代列名。調(diào)用 mysql_result()不能和其它處理結(jié)果集的函數(shù)混合調(diào)用。
總結(jié)
以上是生活随笔為你收集整理的php 扩展 mysql_PHP链接MySQL的常用扩展函数的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 制何首乌的功效与作用、禁忌和食用方法
- 下一篇: 杨桃叶的功效与作用、禁忌和食用方法