#1 homexigua
建议增加pdo操作mysql,我用了论坛上的sqlite pdo那个文件,出错·!2010-04-09 15:31:06
2010-04-09 15:31:06
2010-04-09 15:36:04
2010-04-09 21:29:00
class db_pdo{
/**
* 数据库链接句柄
*/
private $conn;
/**
* 执行的SQL语句记录
*/
public $arrSql;
/**
* 按SQL语句获取记录结果,返回数组
*
* @param sql 执行的SQL语句
*/
public function getArray($sql)
{
if( ! $result = $this->exec($sql) )return FALSE;
if( ! $rows = $result->fetchAll() )return FALSE;
// if( ! $rows = $result->fetch(PDO::FETCH_ASSOC) )return FALSE;
$this->arrSql[] = $sql;
return $rows;
}
/**
* 返回下一个插入的主键ID
*/
public function newinsertid()
{
return $this->conn->lastInsertId();
}
/**
* 执行一个SQL语句
*
* @param sql 需要执行的SQL语句
*/
public function exec($sql)
{
$this->arrSql[] = $sql;
if( $result = $this->conn->prepare($sql)) {
$result->execute();
return $result;
}else{
$errorInfo = $this->conn->errorInfo();
spError("{$sql}
执行错误: " . $errorInfo[2]);
}
}
/**
* 获取数据表结构
*
* @param tbl_name 表名称
*/
public function getTable($tbl_name)
{
return $this->getArray("DESCRIBE {$tbl_name}", $this->conn);
}
/**
* 构造函数
*
* @param dbConfig 数据库配置
*/
public function __construct($dbConfig)
{
if(file_exists($dbConfig['dsn'])){
$this->conn = new PDO($dbConfig['dsn'],$dbConfig['login'],$dbConfig['password']);
}else{
spError("无法找到数据库,请确认数据库路径及名称正确!");
}
//$this->exec("SET NAMES UTF8");
}
/**
* 对特殊字符进行过滤
*
* @param value 值
*/
public function __val_escape($value) {
if(is_null($value))return 'NULL';
if(is_bool($value))return $value ? 1 : 0;
if(is_int($value))return (int)$value;
if(is_float($value))return (float)$value;
if(@get_magic_quotes_gpc())$value = stripslashes($value);
$toEscape = $this->conn->quote($toEscape);
$toEscape = substr($toEscape, 1, -1);
return $toEscape;
}
}
2010-04-14 11:23:46
'db' => array( //pdo方式连接数据库
'driver' => 'db_pdo', // 驱动类型
'login' => 'root', // 用户名
'password' => '', // 密码
'dsn' => 'mysql:host=localhost;dbname=db', //pdo方式连接数据库
'prefix' => 'p_', // 表前缀
),
'db_driver_path' => '/db_pdo.php', // 数据库驱动文件
2010-04-14 11:24:25
controller中main.php代码
class lib_news extends spModel{
var $pk = 'id';
var $table = 'news';
}
提示无法找到数据库,请确认数据库路径及名称正确!
class main extends spController{
function index(){
$db = spClass('lib_news');
$list = $db->findAll();
dump($list);
}
}
2010-04-14 11:26:04
public function __construct($dbConfig)
{
try{
$this->conn = new PDO($dbConfig['dsn'],$dbConfig['login'],$dbConfig['password']);
}catch(PDOException $exception){
echo "数据库链接错误:".$exception->getMessage();
}
$this->exec("SET NAMES UTF8");
}
2010-04-14 11:36:34