这个跟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;
?>