#1 zhgzzy
1. 数据库连接'db' => array( // 数据库连接配置2. odbc.php 文件中要修改的代码
'driver' => 'odbc', // 驱动类型
'host' => 'DRIVER={Microsoft Access Driver (*.mdb)};dbq='.getcwd().'\\data\test.mdb', // 数据库地址
'port' => '', // 端口
'login' => '', // 用户名
'password' => '', // 密码
'database' => '', // 库名称
'prefix' => 'sht_', // 表前缀
'persistent' => FALSE, // 是否使用长链接
),
'db_driver_path' => SP_PATH.'/Drivers/odbc.php', // 自定义数据库驱动文件地址
要修改的:
/**
* 返回当前插入记录的主键ID
*/
public function newinsertid()
{
$result = $this->getArray("select @@IDENTITY as sptmp_newinsert_id");
return $result[0]['sptmp_newinsert_id'];
}
/**要添加的:
* 转换MS类数据库的LIMIT语句的转换函数
*/
function translimit($sql){
preg_match('/ limit /i', $sql);
while(preg_match("/ /", $sql))$sql = str_replace(" "," ",$sql);
$sql_array = explode(" ",$sql);
//取得部分重要的数组索引
$i = 0;
while(isset($sql_array[$i]) && $sql_array[$i]){
if(strtolower($sql_array[$i])=="from")$from_id = $i;
if(strtolower($sql_array[$i])=="limit")$limit_id = $i;
if(strtolower($sql_array[$i])=="order")$order_id = $i;
$i++;
}
$last_id = $i-1;
$two_num = explode(",",$sql_array[$limit_id+1]);
$totle_num = $two_num[0]+$two_num[1];
$sql_return = "SELECT TOP {$totle_num} ";
for($i=1;$i<$limit_id;$i++){
$sql_return .= $sql_array[$i] ;
$sql_return .= " ";
}
return $sql_return;
}
/**
* 格式化带limit的SQL语句
*/
public function setlimit($sql, $limit)
{
if(!eregi(",", $limit))$limit = '0,'.$limit;
$sql .= " LIMIT {$limit}";
return $this->translimit($sql);
}
2011-04-29 14:27:30