pdo是程序和各種資料庫之間的中間層, 用來抹平資料庫的差異,從而降低使用各種版本品牌資料庫的複雜性.類似於linux的vfs.
難以逾越的地方在於如果想一鍵切換資料庫必須要寫個個資料庫都相容的sql語句.
於是, pdo成為了支援多種資料庫的框架的利器.(框架一般會封裝乙個activerecord類避免使用原生sql);
綜上所述:開發效率提高, 執行效率下降
<?php
/*options = array[
pdo::mysql_attr_init_command=>』set names utf8』
pdo::attr_persistent => true //開啟持久化連線, 在swoole裡用, fpm不使用
];$pdo = new pdo(dsn, "使用者名稱", "密碼", options);
*/$dsn = "mysql:host=localhost; port=3306; dbname=php39";
$opt = array(pdo::mysql_attr_init_command => 'set names utf8');
$pdo = new pdo($dsn, 'root', '123', $opt);
var_dump($pdo);
?>
<?php
$dsn = "mysql:host=localhost; port=3306; dbname=php39";
$opt = array(pdo::mysql_attr_init_command => 'set names utf8');
$pdo = new pdo($dsn, 'root', '123', $opt);
$sql = "select * from tab_int limit 0, 3";
$stmt = $pdo->query($sql); //得到pdo的結果集
$arr1 = $stmt->fetch(pdo::fetch_assoc); //返回關聯陣列
$arr2 = $stmt->fetch(pdo::fetch_num); //返回索引陣列
$arr3 = $stmt->fetch(); //相當於fetch(pdo::fetch_both)
echo "
"; print_r($arr1);
echo "
"; print_r($arr2);
echo "
"; print_r($arr3);
?>
<?php
$dsn = "mysql:host=localhost; port=3306; dbname=php39";
$opt = array(pdo::mysql_attr_init_command => 'set names utf8');
$pdo = new pdo($dsn, 'root', '123', $opt);
$sql = "select user_id, user_name, age,edu from user_list where user_id= ? and user_name = ? ";
$stmt = $pdo->prepare($sql);
$stmt->bindvalue(1, 6); //佔位符按自然順序,從1開始
$stmt->bindvalue(2, 'user2');//第2項給值為「user2」;
$stmt->execute();
$arr = $stmt->fetch(pdo::fetch_assoc);
//print_r($arr);
//echo "";
$sql = "select user_id, user_name, age,edu from user_list where user_id= :v1 and user_name = :v2 ";
$stmt = $pdo->prepare($sql);
$stmt->bindvalue(":v1", 6); //命名引數,直接使用該名字
$stmt->bindvalue(":v2", 'user2');
$stmt->execute();
$arr = $stmt->fetch(pdo::fetch_assoc);
print_r($arr);
?>
<?php
$dsn = "mysql:host=localhost; port=3306; dbname=php39";
$opt = array(pdo::mysql_attr_init_command => 'set names utf8');
$pdo = new pdo($dsn, 'root', '123', $opt);
var_dump($pdo);
$sql = "updateeeee tab_int set f1 = 1; "; //這個sql語句肯定是錯誤
$result = $pdo->exec($sql);
if($result === false)
//下面,讓pdo物件「進入」異常模式,以處理出錯資訊:
$pdo->setattribute(pdo::attr_errmode, pdo::errmode_exception);
//然後,下面開始演示異常模式的**:
trycatch(exception $e)
?>
<?php
//例項化pdo物件
$dsn = "mysql:host=127.0.0.1;dbname=php_7;port=3306;charset=utf8";
$user = 'root';
$pass = 'root';
$pdo = new pdo($dsn,$user,$pass);
//先開啟事務
$pdo -> begintransaction();
//先從宋江的賬號上扣3000
$sql = "update cash set money=money-3000 where name='宋江'";
$res1 = $pdo -> exec($sql);
//李逵的賬號上加 3000
$sql = "update cash set money=money+3000 where name='李逵'";
$res2 = $pdo -> exec($sql);
if($res1 && $res2)else
誰動了他的jar包 二
接 誰動了他的jar包 一 url 續誰動了他的jar包 三 url b 用classloader的方法,將建立乙個小的執行機制,和業務 的相關性很低,冗餘 多 而且,新建的和原類相同的包名和類不便於維護 有什麼更好的方法麼?b b 對於 一 中描述的需求,其實,我們只需改變下feature的私有屬...
李楠離職徒弟微博發聲 我一身本事都是他教的
經歷各種傳言之後,今日,李楠在微博上宣布,已從魅族公司離職。隨後,多位業內人士 該訊息。今天下午,華公尺科技副總裁裴帆迪 李楠離職長微博,並表示 我www.cppcns.com的一身本事都是楠總教的,他是我 曾經 現在和將來,都是 一直都是 他直言,沒有李楠,現在就不會有魅族這個公司。魅族就不可能曾...
頹廢老公的「第二春「?菜鳥讓他走上xing福新生活
對於地處偏遠的農村來說,最好的脫貧方式就是借助農村自身的特色和優勢,靠山吃山 依靠電商脫貧。但提到電商不得不提到的就是物流,農村路途遙遠,成本太多,對運輸有很大的不便。2014年,阿里巴巴旗下智慧型物流平台菜鳥網路 出山 了,對廣大鄉村開始全面覆蓋。電商物流的發展還讓農村人的生活更加 熱鬧 起來,和...