PHP鏈接MySQL的常用擴(kuò)展函數(shù)
一、PHP連接數(shù)據(jù)庫及基本操作
MySQL采用的是'客戶機(jī)/服務(wù)器'架構(gòu)。使用PHP安裝的MySQL擴(kuò)展函數(shù),和直接使用客戶端軟件區(qū)訪問MySQL數(shù)據(jù)庫服務(wù)器,原理一樣,都需要向MySQL管理系統(tǒng)發(fā)送SQL命令,然后將結(jié)果返回給用戶。
在PHP中,SQL分為兩類(查看SQL語句分類):一是有返回結(jié)果集的DQL語句,如select/desc 表名,執(zhí)行完畢之后,需要PHP處理結(jié)果集;二是沒有結(jié)果集的,如DML、DDL等,但是DML語句執(zhí)行成功后對數(shù)據(jù)表的記錄有影響。
<?php
//連接數(shù)據(jù)庫,常用參數(shù)是主機(jī)名、用戶名和密碼
$link = mysql_connect('localhost','root','123456');
//判斷是否連接成功
if(!$link)
{
die('連接失敗'.mysql.error()); //連接成功返回資源標(biāo)識符,失敗返回false,mysql_error顯示錯誤信息
}
//選擇數(shù)據(jù)庫,mysql_error()只在調(diào)試中使用,再部署項目時就不要了,不然會泄露數(shù)據(jù)庫信息
mysql_select_db('test') or die('選擇數(shù)據(jù)庫失敗'.mysql_error());
//mysql_query()可以設(shè)置字符集和執(zhí)行SQL語句
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,會對表的記錄有影響
if($result && mysql_affected_rows() > 0)
{
//mysql_insert_id()返回最后一條新紀(jì)錄的auto_increment值
echo '插入數(shù)據(jù)成功'.mysql_insert_id().'<br/>';
}
else
{
echo '插入數(shù)據(jù)失敗,錯誤號:'.mysql_errno().'錯誤信息:'.mysql_error().'<br/>';
}
//關(guān)閉連接
mysql_close($link);
?>
二、PHP處理select查詢結(jié)果集
在PHP中執(zhí)行select語句返回一個結(jié)果集,可以用于對各個字段的處理
$result = mysql_query('select * from test');
//獲取記錄行的個數(shù)
$rows = mysql_num_rows($result);
//獲取字段個數(shù),即數(shù)據(jù)列
$cols = mysql_num_fields($result);
如果需要訪問結(jié)果集中的數(shù)據(jù),可以使用下列四個函數(shù)中的一個(均以結(jié)果集資源符作為參數(shù),并自動返回下一條記錄,在表末尾時返回false)
1、mysql_fetch_row():該函數(shù)將一條結(jié)果記錄返回并以一個普通的索引數(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作為第二個參數(shù),指定返回的數(shù)據(jù)形態(tài)。
4、mysql_fetch_object():從結(jié)果集中取得一行作為對象,各個字段以對象方式訪問。
建議:沒有特殊要求,不要使用mysql_fetch_array(),可以使用mysql_fetch_row()或者mysql_fetch_assoc()實現(xiàn)同樣的功能,且效率高。
另外也有三個與結(jié)果集相關(guān)的常用函數(shù)
5、mysql_data_seek(int $num):移動內(nèi)部結(jié)果的指針,$num是想要設(shè)定的新的結(jié)果集指針的行數(shù)。
6、mysql_fetch_lengths(resource $result):取得結(jié)果集中每個輸出的長度
7、mysql_result(resource $result , int $row[,mixed $field]):返回 MySQL 結(jié)果集中一個單元的內(nèi)容。字段參數(shù)可以是字段的偏移量或者字段名,或者是字段表點字段名(tablename.fieldname)。如果給列起了別名('select foo as bar from…'),則用別名替代列名。調(diào)用 mysql_result()不能和其它處理結(jié)果集的函數(shù)混合調(diào)用。
- PHP 檢查擴(kuò)展庫或函數(shù)是否可用的代碼
- php smarty函數(shù)擴(kuò)展
- 編寫自己的php擴(kuò)展函數(shù)
- 非常實用的php彈出錯誤警告函數(shù)擴(kuò)展性強(qiáng)
- php實現(xiàn)jQuery擴(kuò)展函數(shù)
- PHP7擴(kuò)展開發(fā)之基于函數(shù)方式使用lib庫的方法詳解
- PHP獲取和操作配置文件php.ini的幾個函數(shù)介紹
- PHP配置文件中最常用四個ini函數(shù)
- PHP最常用的ini函數(shù)分析 針對PHP.ini配置文件
- PHP 的幾個配置文件函數(shù)
- PHP parse_ini_file函數(shù)的應(yīng)用與擴(kuò)展操作示例
相關(guān)文章
Laravel的Auth驗證Token驗證使用自定義Redis的例子
今天小編就為大家分享一篇Laravel的Auth驗證Token驗證使用自定義Redis的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-09-09
Zend Framework數(shù)據(jù)庫操作方法實例總結(jié)
這篇文章主要介紹了Zend Framework數(shù)據(jù)庫操作方法,結(jié)合實例形式總結(jié)分析了Zend Framework數(shù)據(jù)庫操作相關(guān)函數(shù)使用技巧與注意事項,需要的朋友可以參考下2016-12-12
基于ThinkPHP5框架使用QueryList爬取并存入mysql數(shù)據(jù)庫操作示例
這篇文章主要介紹了基于ThinkPHP5框架使用QueryList爬取并存入mysql數(shù)據(jù)庫操作,結(jié)合實例形式分析了thinkPHP5框架整合QueryList爬取數(shù)據(jù)存入mysql相關(guān)操作技巧及注意事項,需要的朋友可以參考下2019-05-05

