1. 程式人生 > >7.19 PDO(php data object-php數據對象)數據庫抽象層

7.19 PDO(php data object-php數據對象)數據庫抽象層

dbn data mode 成功 utf-8 DBName echo 問號 har

<?php
header("Content-type: text/html; charset=utf-8");
//PDO操作mysql
/*$pdo =new PDO("mysql:host=localhost;dbname=ceshi","root","");
$pdo->exec("set names utf8");//exec()用來執行增刪改和設置的語句
$sql = "select *from student";
$ycl = $pdo->query($sql);//query()用來執行查詢語句
$attr = $ycl->fetchAll(PDO::FETCH_ASSOC);*/
//var_dump($attr);
//lastInsertId()用法:最後一次插入的id
/* $pdo =new PDO("mysql:host=localhost;dbname=ceshi","root","");
$pdo->exec("set names utf8");
$sql = "insert into student values(‘‘,‘‘,‘zhangsan32‘,‘‘,‘‘,‘‘)";
if($pdo->exec($sql)){
$lastid = $pdo->lastInsertId();
echo "id是{$lastid}的數據插入成功";
var_dump($lastid);
}*/
//setAttribute()設置PDO的一些屬性
/* $pdo =new PDO("mysql:host=localhost;dbname=ceshi","root","");
$pdo->exec("set names utf8");
$pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE,PDO::FETCH_ASSOC);//設置查詢數據返回的類型,這樣就不用每次都寫fetchAll(PDO::FETCH_ASSOC)了
$sql = "select * from student";
$ycl = $pdo->query($sql);
//$attr = $ycl->fetchAll(PDO::FETCH_ASSOC);省去這一句
$attr = $ycl->fetchAll();
var_dump($attr);*/

//prepare()用法
/* $pdo = new PDO(‘mysql:host=localhost;dbname=ceshi‘, "root", "");
$pdo->exec("set names utf8");
$sql = "select * from student";
$ycl = $pdo->prepare($sql);//預處理,把sql語句保存準備,可防止sql註入,也能提高查詢的效率,當另一個用戶再次請求相同的sql,會先找到這個準備的sql,執行查詢
$ycl->execute();//執行
$attr = $ycl->fetchAll(PDO::FETCH_ASSOC);*/

//bindValue()
/* $pdo = new PDO(‘mysql:host=localhost;dbname=ceshi‘, "root", "");
$pdo->exec("set names utf8");
$sql = "select * from student where sno =?";//防止每個人選擇的sno不一樣而導致重復的sql,設置sno=?
$ycl = $pdo->prepare($sql);//預處理
$id = 098;//這個id是傳遞過來的參數
$ycl->bindValue(1,$id,PDO::PARAM_INT);//往第一個問號上綁定$id,並給$id設置類型PDO::PARAM_INT
$ycl->execute();//執行
$attr = $ycl->rowCount();
var_dump($attr);*/
//columnCount()返回表的列數
/* $pdo = new PDO(‘mysql:host=localhost;dbname=ceshi‘, "root", "");
$pdo->exec("set names utf8");
$sql = "select * from student";
$ycl = $pdo->prepare($sql);//預處理
$ycl->execute();//執行
//$attr = $ycl->columnCount();
$attr = $ycl->fetchColumn(3);
$attr = $ycl->fetchColumn(4); //從預處理裏面查詢某一行數據的第n(n從0開始)列的值,執行第一次是第一行,執行第二次是第二行
var_dump($attr);*/ //rowCount()影響數據的行數
/* $sql = "select * from student";
$ycl = $pdo->prepare($sql);
$ycl->execute();
$attr = $ycl->rowCount();
var_dump($attr);*/
//PDO預處理
/*$pdo = new PDO(‘mysql:host=localhost;dbname=ceshi‘, "root", "");
$pdo->exec("set names utf8");
//查詢的預處理
$sql = "select * from student";
$ycl = $pdo->prepare($sql);
$ycl->execute();
$attr = $ycl->fetchAll(PDO::FETCH_ASSOC);
var_dump($attr);*/

7.19 PDO(php data object-php數據對象)數據庫抽象層