php與mysql的連接有三種API接口冀偶,分別是:PHP的MySQL擴(kuò)展 醒第、PHP的mysqli擴(kuò)展 、PHP數(shù)據(jù)對(duì)象(PDO) 进鸠。在這三種方法中稠曼,“民間”很多是傾向于使用PDO,因?yàn)槠洳粨?dān)有跨庫(kù)(可以和各個(gè)數(shù)據(jù)庫(kù)連接和處理)的優(yōu)點(diǎn)客年,更有讀寫(xiě)速度快的特點(diǎn)霞幅。 PDO不僅能防止了sql注入問(wèn)題,同時(shí)是面向?qū)ο蟮牧抗希圆还懿僮鬟€是使用都是挺方便的司恳!今天分享下PHP5中使用PDO操作數(shù)據(jù)庫(kù)的方法!
1.PDO簡(jiǎn)介
PDO(PHP Data Object) 是PHP 5 中加入的東西绍傲,是PHP 5新加入的一個(gè)重大功能扔傅,因?yàn)樵赑HP 5以前的php4/php3都是一堆的數(shù)據(jù)庫(kù)擴(kuò)展來(lái)跟各個(gè)數(shù)據(jù)庫(kù)的連接和處理,什么 php_mysql.dll、php_pgsql.dll铅鲤、php_mssql.dll划提、php_sqlite.dll等等。 PHP6中也將默認(rèn)使用PDO的方式連接邢享。
2.PDO配置
PHP.ini中,去掉"extension=php_pdo.dll"前面的";"號(hào),若要連接數(shù)據(jù)庫(kù)鹏往,還需要去掉與PDO相關(guān)的數(shù)據(jù)庫(kù)擴(kuò)展前面的";"號(hào),然后重啟Apache服務(wù)器即可骇塘。
extension=php_pdo.dll
extension=php_pdo_mysql.dll
extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll
extension=php_pdo_mssql.dll
extension=php_pdo_odbc.dll
extension=php_pdo_firebird.dll
......
3.PDO連接mysql數(shù)據(jù)庫(kù)
new PDO("mysql:host=localhost;dbname=db_demo","root",""); 默認(rèn)不是長(zhǎng)連接伊履,若要使用數(shù)據(jù)庫(kù)長(zhǎng)連接,需要在最后加如下參數(shù):
new PDO("mysql:host=localhost;dbname=db_demo","root","","array(PDO::ATTR_PERSISTENT => true) ");
4.PDO常用方法及其應(yīng)用
PDO::query() 主要是用于有記錄結(jié)果返回的操作款违,特別是SELECT操作
PDO::exec() 主要是針對(duì)沒(méi)有結(jié)果集合返回的操作唐瀑,如INSERT、UPDATE等操作
PDO::lastInsertId() 返回上次插入操作插爹,主鍵列類(lèi)型是自增的最后的自增ID
PDOStatement::fetch() 是用來(lái)獲取一條記錄
PDOStatement::fetchAll() 是獲取所有記錄集到一個(gè)中
5.PDO操作MYSQL數(shù)據(jù)庫(kù)實(shí)例
<?php
$pdo = new PDO("mysql:host=localhost;dbname=db_demo","root","");
if($pdo -> exec("insert into db_demo(name,content) values('title','content')")){
echo "插入成功哄辣!";
echo $pdo -> lastinsertid();
}
?>
~
<?php
$pdo = new PDO("mysql:host=localhost;dbname=db_demo","root","");
$rs = $pdo -> query("select * from test");
while($row = $rs -> fetch()){
print_r($row);
}
?>
轉(zhuǎn)自:http://bbs.itheima.com/forum.php?mod=viewthread&tid=329982&extra=page%3D2