|
<?php
class SaeMysql extends SaeObject {
static $link;
static $charset;
function __construct() {
global $sae_config;
self::$charset = $sae_config['db_charset'];
$this->connect();
parent::__construct();
}
//连接数据库
protected function connect() {
global $sae_config;
if(empty($sae_config['db_name'])) die(Imit_L('_SAE_PLEASE_CONFIG_DB_'));
self::$link = mysql_connect(SAE_MYSQL_HOST_M, SAE_MYSQL_USER, SAE_MYSQL_PASS) or die(Imit_L('_SAE_CONNECT_DB_ERR_'));
mysql_select_db(SAE_MYSQL_DB, self::$link);
mysql_query("set names " . self::$charset, self::$link);
if (!mysql_select_db(SAE_MYSQL_DB, self::$link)) {
//如果数据库不存在,自动建立
mysql_query('create database ' . SAE_MYSQL_DB, self::$link);
mysql_select_db(SAE_MYSQL_DB, self::$link) or Imit_L('_SAE_DATABASE_NOT_EXIST_');
}
}
//返回影响条数
public function affectedRows() {
return mysql_affected_rows(self::$link);
}
//关闭数据库
public function closeDb() {
mysql_close(self::$link);
}
//escape
public function escape($str) {
return mysql_real_escape_string($str, self::$link);
}
//获得数据,返回数组
public function getData($sql) {
$this->last_sql = $sql;
$result = mysql_query($sql, self::$link);
if(!$result){
return false;
}
$this->save_error();
$data = array();
while ($arr = mysql_fetch_array($result)) {
$data[] = $arr;
}
mysql_free_result($result);
return $data;
}
//返回第一条数据
public function getLine($sql) {
$data = $this->getData($sql);
if ($data) {
return @reset($data);
} else {
return false;
}
}
//返回第一条记录的第一个字段值
public function getVar($sql) {
$data = $this->getLine($sql);
if ($data) {
return $data[@reset(@array_keys($data))];
} else {
return false;
}
}
//返回最后一个id
public function lastId() {
return mysql_insert_id(self::$link);
}
//运行sql语句
public function runSql($sql) {
$ret = mysql_query($sql);
$this->save_error();
return $ret;
}
//设置项目名
public function setAppname($appname) {
}
//设置字符集
public function setCharset($charset) {
self::$charset = $charset;
mysql_query("set names " . self::$charset, self::$link);
}
//设置端口
public function setPort($port) {
}
protected function save_error() {
$this->errmsg = mysql_error(self::$link);
$this->errno = mysql_errno(self::$link);
}
}
|