日期:2014-05-17 浏览次数:20580 次
<?php ///////////////////////////////////////////////////////////////// // SpeedPHP中文PHP框架, Copyright (C) 2008 - 2010 SpeedPHP.com // ///////////////////////////////////////////////////////////////// /** * SAE中MySQL数据库的驱动支持 * * SAE是Sina App Engine(新浪应用引擎)的缩写,SAE是一个分布式web应用开发运行的服务平台, * 其不仅仅包含创建、部署web应用的简单交互,更涉及一整套大规模分布式服务的解决方案。 * * db_sae 封装了SAE提供的SaeMysql类的驱动操作。 */ class db_sae { /** * 数据库链接句柄 */ public $conn; /** * 执行的SQL语句记录 */ public $arrSql; /** * 按SQL语句获取记录结果,返回数组 * * @param sql 执行的SQL语句 */ public function getArray($sql) { $this->arrSql[] = $sql; $result = $this->conn->getData($sql); if( $this->conn->errno() )spError("{$sql}<br />执行错误: " . $this->conn->error()); return $result; } /** * 返回当前插入记录的主键ID */ public function newinsertid() { return $this->conn->lastId(); } /** * 格式化带limit的SQL语句 */ public function setlimit($sql, $limit) { return $sql. " LIMIT {$limit}"; } /** * 执行一个SQL语句 * * @param sql 需要执行的SQL语句 */ public function exec($sql) { $this->arrSql[] = $sql; $result = $this->conn->runSql($sql); if( $this->conn->errno() )spError("{$sql}<br />执行错误: " . $this->conn->error()); return $result; } /** * 返回影响行数 */ public function affected_rows() { return FALSE; // SAE环境暂时无法获取影响行数 } /** * 获取数据表结构 * * @param tbl_name 表名称 */ public function getTable($tbl_name) { return $this->getArray("DESCRIBE {$tbl_name}"); } /** * 构造函数 * * @param dbConfig 数据库配置 */ public function __construct($dbConfig) { if(TRUE == SP_DEBUG)sae_set_display_errors(TRUE); $this->conn = new SaeMysql(); if( $this->conn->errno() )spError("数据库链接错误 : " . $this->conn->error()); $this->conn->setCharset("UTF8"); } /** * 对特殊字符进行过滤 * * @param value 值 */ public function __val_escape($value, $quotes = FALSE) { 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;