這個跟mysqli大同小異,只寫了關鍵部分代碼
demo地址 http://pan.baidu.com/s/1o8kBYpc
getdata.php
<?php
/*/header("Content-type:text/html;charset=gbk");
//數據庫配置信息(用戶名,密碼,數據庫名,表前綴等)
$cfg_dbhost = "localhost";
$cfg_dbuser = "root";
$cfg_dbpwd = "root";
$cfg_dbname = "ajaxtest";
$cfg_dbprefix = "";//*/
/////////////配置數據庫部分,實際應用中應該有統一的配置文件/////////////////////
header('Content-Type:text/html;Charset=gbk');
define('DB_DSN', 'mysql:host=localhost;dbname=ajaxtest');
define('DB_USER', 'root');
define('DB_PWD', 'Wanda2013');
/*/ 自動加載文件類 這裏因爲是模擬,所以把自動加載的類都寫在了一個頁面
function __autoload($className) {
require_once ROOT_PATH . '/includes/'. ucfirst($className) .'.class.php';
}*/
////////////////////////數據庫連接類////////////////////////
class Db {
static public function getDB() {
try {
$pdo = new PDO(DB_DSN, DB_USER, DB_PWD);
$pdo->setAttribute(PDO::ATTR_PERSISTENT, true); // 設置數據庫連接爲持久連接
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // 設置拋出錯誤
$pdo->setAttribute(PDO::ATTR_ORACLE_NULLS, true); // 設置當字符串爲空轉換爲 SQL 的 NULL
$pdo->query('SET NAMES gbk'); // 設置數據庫編碼
} catch (PDOException $e) {
exit('數據庫連接錯誤,錯誤信息:'. $e->getMessage());
}
return $pdo;
}
}
///////////////////////數據查詢類//////////////////////////////
class Model {
/**
* 返回單條數據
* @param string $tName 表名
* @param string $keywords 查找的關鍵字
* @param string or array $fields 返回的字段,默認是*
* @return PDOStatement
*/
public function search($tName, $keywords, $fields) {
try {
if (!is_string($tName) || !is_string($keywords) || !is_string($fields)) exit($this->getError(__FUNCTION__, __LINE__));
$pdo = Db::getDB();
$data = $pdo->query("SELECT {$fields} FROM {$tName} WHERE {$fields} like '%{$keywords}%' order by click desc limit 0,9");
//$data = $pdo->query("SELECT title FROM article WHERE title like '%p%' order by click desc limit 0,9");
$pdo = null;
return $data;
} catch (PDOException $e) {
exit($e->getMessage());
}
}
}
/////////////////////調取類////////////////////////
$m = new Model();
$keywords = iconv("utf-8","gbk//IGNORE",$_POST['keywords']);
//改變傳值的編碼類型爲gbk
$res = $m->search('article', $keywords , 'title');
///////////////遍歷每一行//////////////////////
$row = $res->fetchAll(PDO::FETCH_NUM);
///////////////獲取查詢數據條數/////////////////////
$mNums = count ($row);
/*///////////////測試輸出////////////////
print_r($row);
foreach($row as $val){
echo $val[0].'<br>';
} //測試打印這個數組,查看正常不正常
echo "</br>";
print_r($mNums); //打印查詢到的數據條數
echo "</br>";
//*/
//$mNums = mysql_num_rows($res);
//$row = mysql_fetch_array($res);
if($mNums<1){
echo "no";
exit();
}else{
$result="[";
foreach($row as $val){
//echo $val[0].'<br>';
$result.="{'keywords':'$val[0]'},";
}
$result.=']';
echo $result;
}
//print_r($result);
$res = null;
?>