天天看點

php PDO 方式操作資料庫小結

一、連接配接資料庫(可存于單獨的 conn.php 檔案中)

$dsn = 'mysql:dbname=db_dreamtale;host=127.0.0.1'; //連接配接 
           

MySQL 資料庫的 DSN

$user = 'root'; //資料庫使用者名
$pwd = ''; //資料庫密碼
$pdo = new PDO($dsn, $user, $pwd); //建立一個 PDO 對象$pdo
$pdo->query('set names utf8'); //執行 SQL 指令,設定字元集為 UTF-8
           

二、無參數查詢

$sql="SELECT ID,post_title FROM tb_posts WHERE post_status = 'publish' AND post_type
= 'page' ORDER BY menu_order DESC, post_date DESC LIMIT 5"; //定義 SQL 指令
$page_stmt = $pdo->query($sql); //執行 SQL 查詢并将結果傳回給變量$page_stmt
//将變量$page_stmt 的每一行處理為數組
while($pages = $page_stmt->fetch(PDO::FETCH_ASSOC)){
echo $pages['post_title']; //顯示數組中 'post_title'字段
}
           

三、參數化查詢

1) 數組方式

$login_name = $_POST['username']; //接收資料
$login_pwd = $_POST['password']; //接收資料
//用問号作為占位符代替需要添加到 SQL 語句中的變量
$login_sql = "select * from tb_users where user_login = ? and user_pass = ? ";
$login_stmt = $pdo->prepare($login_sql); //SQL 指令預處理
$login_stmt->execute(array($login_name, $login_pwd )); //以數組的方式傳遞實參并執行
           

2)綁定變量值方式

$login_name = $_POST['username']; //接收資料
$login_pwd = $_POST['password']; //接收資料
//用問号作為占位符代替需要添加到 SQL 語句中的變量
$login_sql = "select * from tb_users where user_login = ? and user_pass = ? ";
$login_stmt = $pdo->prepare($login_sql); //SQL 指令預處理
$login_stmt->bindParam(, $login_name); //綁定變量到第一個問号
$login_stmt->bindParam(, $login_pwd); //綁定變量到第二個問号
$login_stmt->execute(); //執行查詢
           
php