iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 20
0
自我挑戰組

大學 50 萬貸款的交代系列 第 20

Day 20 _ PDO 簡易使用指南

  • 分享至 

  • xImage
  •  

在 Day 19 我們介紹了 mysqli 的用法,在 Day 20 我們要來介紹 PDO 這個 PHP 的語法如何使用。

與資料庫建立連線

一開始還是要了解怎麼跟資料庫進行連線,寫法如下

$connection = new PDO( "mysql:host=資料庫IP;dbname=資料庫名稱;", 登入ID, 登入密碼 );

我們使用 Day 19 的資料庫例子

資料庫IP = '127.0.0.1'
登入ID = 'root'
登入密碼 = ''
資料庫名稱='foo'

寫起來會是這樣

$connection = new PDO( "mysql:host=127.0.0.1;dbname=Foo;", 'root','');

操作資料庫

操作的部分我們用 Day 19 的例子來改寫,會像下面這樣

$newUserID = 'User87';
$newUserPassword='123456';
$sql = "INSERT INTO `account` (UserID,password) VALUES (?, PASSWORD(?))";
$statement = $connection->prepare( $sql );
$statement->bindValue( 1, $newUserID, PDO::PARAM_STR );
$statement->bindValue( 2, $newUserPassword, PDO::PARAM_STR );
$statement->execute();

解釋一下,前面的部分都差不多。後面的部分稍微不同的是, PDO 使用的是 bindValue 來填入變數。後面的 PDO::PARAM_STR 是要告訴程式,前面的變數要使用字串的型態來填入,為的也是防止 Injection。最後再execute()就可以了。

bindValue 把程式變長了啦

bindValue 這樣的寫法會大大加長程式的長度,所以可以把 bindValue那兩行刪掉,改寫一下 execute() 變成下面這樣

$statement->execute(array($newUserID,$newUserPassword));

就變短一些啦


上一篇
Day 19 _ PHP mysqli 簡易使用指南
下一篇
Day 21 怕啦.SQL Injection Σ( ° △ °)
系列文
大學 50 萬貸款的交代30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
encoreit
iT邦新手 5 級 ‧ 2022-11-12 23:05:47

除了bindValue,也可以用bindParam,使用方法有些微差異。

我要留言

立即登入留言