pdo连接mysql数据库(简洁明了)
生活随笔
收集整理的這篇文章主要介紹了
pdo连接mysql数据库(简洁明了)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一 實例化pdo對象
$dsn = "mysql:dbname=test;host=127.0.0.1"; $pdo = new PDO($dsn,'root','root');?
二 數據查詢
1、如果不根據用戶傳過來的值進行操作,可以直接query sql
$dsn = "mysql:dbname=test;host=127.0.0.1"; $pdo = new PDO($dsn,'root','root'); $sql = "select * from student"; $stmt = $pdo->query($sql); var_dump($stmt->fetchAll(2));數據是可以正常顯示的
array (size=39)0 => array (size=8)'id' => '1' (length=1)'name' => '周更生' (length=9)'sex' => '男' (length=3)'age' => '24' (length=2)'edu' => '大專' (length=6)'salary' => '5000.00' (length=7)'bonus' => '200.00' (length=6)'city' => '山東省' (length=9)1 => array (size=8)'id' => '2' (length=1)'name' => '王小平' (length=9)'sex' => '男' (length=3)'age' => '28' (length=2)'edu' => '大專' (length=6)'salary' => '500.00' (length=6)'bonus' => '200.00' (length=6)'city' => '陜西省' (length=9)2 => array (size=8)'id' => '3' (length=1)'name' => '周改娟' (length=9)'sex' => '女' (length=3)'age' => '28' (length=2)'edu' => '大專' (length=6)'salary' => '8000.00' (length=7)... (size=39)0 => array (size=8)'id' => '1' (length=1)'name' => '周更生' (length=9)'sex' => '男' (length=3)'age' => '24' (length=2)'edu' => '大專' (length=6)'salary' => '5000.00' (length=7)'bonus' => '200.00' (length=6)'city' => '山東省' (length=9)1 => array (size=8)'id' => '2' (length=1)'name' => '王小平' (length=9)'sex' => '男' (length=3)'age' => '28' (length=2)'edu' => '大專' (length=6)'salary' => '500.00' (length=6)'bonus' => '200.00' (length=6)'city' => '陜西省' (length=9)2 => array (size=8)'id' => '3' (length=1)'name' => '周改娟' (length=9)'sex' => '女' (length=3)'age' => '28' (length=2)'edu' => '大專' (length=6)'salary' => '8000.00' (length=7)...?
2、sql中帶變量進行查詢
$id = 5; $pdo = new \PDO('mysql:host=127.0.0.1;dbname=test','root','123456'); //查詢操作 $stmt = $pdo->query("select * from user where id ='{$id}' limit 1"); $data = $stmt->fetch(2); var_dump($data);?
3、 如果是根據用戶傳過來的值進行查詢,為了防止sql注入,就需要預處理之后再進行查詢
$dsn = "mysql:dbname=test;host=127.0.0.1"; $pdo = new PDO($dsn,'root','root'); $name = '孫娟';//這里的$name是接收用戶傳過來的值,這里我們為了簡潔,直接定位 $sql = "select * from student where name=:name"; $stmt = $pdo->prepare($sql); $stmt->execute(array('name'=>$name)); var_dump($stmt->fetch(2));結果同樣可以正常信息顯示:
array (size=8)'id' => '6' (length=1)'name' => '孫娟' (length=6)'sex' => '女' (length=3)'age' => '24' (length=2)'edu' => '大本' (length=6)'salary' => '12300.00' (length=8)'bonus' => '1080.00' (length=7)'city' => '北京市' (length=9) (size=8)'id' => '6' (length=1)'name' => '孫娟' (length=6)'sex' => '女' (length=3)'age' => '24' (length=2)'edu' => '大本' (length=6)'salary' => '12300.00' (length=8)'bonus' => '1080.00' (length=7)'city' => '北京市' (length=9)?
?
三 我們需要知道的連接mysql數據庫的三種方式及區別
?
1、pdo
pdo操作mysql數據庫雖然效率相較于mysqli會稍微低了一點點,但勝在擴展性強,以后換數據庫可以很方便的進行遷移,代碼幾乎不用改動,所以極其推薦使用pdo連接操作數據庫
?
2、mysqli
mysqli同樣可以實現連接并操作mysql數據庫,同樣和pdo一樣,也支持預處理,并且單純從效率上來說,好像還比pdo稍微好了那么一點,但缺點是它只能連接mysql數據庫,擴展性太差,一旦以后更換數據庫,很多代碼都需要重寫
?
3、mysql
mysql直接連接數據庫,現在官方都把mysql函數廢棄了,你還在執著嗎? 第一它只支持mysql數據庫,可擴展性太差.第二,不支持預處理,安全問題堪憂,所以,千萬不要使用mysql連接數據庫方式,改用pdo或者mysqli吧
?
想了解更多可參考?https://www.helloweba.net/php/573.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的pdo连接mysql数据库(简洁明了)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Mysql数据库安全性问题【防注入】
- 下一篇: PHP基础(必须熟练掌握的基础)