【PDO配置】
1、確保PHP版本為5.2.5以上(主要是我用的5.2.5,第一次不知道用的5.1.x的,結果一直搞不好~_~)
2、在php.ini中找到Dynamic Extensions擴充部分,去掉extension=php_pdo.dll前面的分號
3、去掉相應資料庫PDO擴充前面的分號,如:extension=php_pdo_mysql.dll
【範例中資料庫】
CREATE TABLE tablename (
id mediumint(8) UNSIGNED NOT NULL AUTO_INCREMENT,
str varchar(50) NOT NULL DEFAULT '',
PRIMARY KEY (id)
);
【程式範例】
<?php
/*
* 資料庫配置資訊
*/
$dsn = "mysql:host=localhost;dbname=test";
$user = 'root';
$passwd = '123456';
/*
* 連結資料庫,並測試是否連結成功
*/
try{
$db = new PDO($dsn, $user, $passwd);
}catch (PDOException $e)
{
echo "連結資料庫失敗!";
print "異常資訊: ". $e->getMessage() . "<br/>";
print "異常檔案: " . $e->getFile() . "<br/>";
print "異常行號: " . $e->getLine() . "<br/>";
exit();
}
/*
* 插入
*/
//$sql = "INSERT INTO tablename SET str = 'Hello'";
//$count = $db->exec($sql); //傳回值為影響的行數
/*
* 刪除
*/
//$sql = "DELETE FROM tablename WHERE str = 'Hello' LIMIT 1";
//$count = $db->exec($sql); //傳回值為影響的行數
/*
* 查詢
*/
//預先處理需要查詢的SQL語句
//$db->setAttribute(PDO::ATTR_CASE, PDO::CASE_NATURAL); //列名按照原始的方式(欄位)
$sql = "SELECT * FROM tablename WHERE id < :id AND str = :string"; //sql語句(參數綁定方式)
$query = $db->prepare($sql); //預先處理
//用一組綁定參數執行一遍查詢
$query->execute(array(':id'=>1, ':string'=>'Hello')); //處理語句(參數綁定方式)
//$query->setFetchMode(PDO::FETCH_ASSOC); 關聯陣列形式(只通過欄位名下標訪問數組內容)
while($item = $query->fetch(PDO::FETCH_ASSOC)) //迴圈擷取資料
{
echo $item['id'].":".$item['str']."<br/>";
//print_r ($item);
}
//用另一組綁定參數,再執行一遍查詢
$query->execute(array(':id'<=10, ':string'=>'HelloWorld')); //處理語句(參數綁定方式)
//$query->setFetchMode(PDO::FETCH_ASSOC); 關聯陣列形式(只通過欄位名下標訪問數組內容)
while($item = $query->fetch(PDO::FETCH_ASSOC)) //迴圈擷取資料
{
echo $item['id'].":".$item['str']."<br/>";
//print_r ($item);
}
$db = null; //釋放資料庫連結
?>