ci支持access数据库吗?
ci支持access数据库吗?$dsn=" Provider=Microsoft.Jet.OLEDB.4.0;Data Source=xxx.mdb;Persist Security Info=False";
象这种的
[ 本帖最后由 yakczh 于 2008-5-14 08:44 编辑 ] 不直接支持,需要 ODBC。 我折腾了一下
大体上可以用
楼主需要跟我联系
本人网站就是ci+access
图便宜买不起支持mysql的 基本上我是全部copy database/drivers下的odbc到access
但稍微做了一点改变access_driver.php中
配置了链接,不过是hard code进去的
晚上回家把整个database文件传上来,需要的对比下源码,具体改了啥忘记了
反正当时debug了整整两天才搞定
class CI_DB_access_driver extends CI_DB {
/**
* The syntax to count rows is slightly different across different
* database engines, so this string appears in each driver and is
* used for the count_all() and count_all_results() functions.
*/
var $_count_string = "SELECT COUNT(*) AS ";
var $_random_keyword;
var $_insert_id;
function CI_DB_access_driver()
{
//FIXME 不知道access随机数
$this->_random_keyword = ' RND('.time().')'; // database specific random keyword
}
/**
* Non-persistent database connection
*
* @access private called by the base class
* @return resource
*/
function db_connect()
{
$mdbPath = "php.mdb";
$dao = new COM("ADODB.Connection");
$dsn="DRIVER={Microsoft Access Driver (*.mdb)};DBQ=".realpath($mdbPath);
$dao->open($dsn);
#echo "<br >------ accesssaccessaccess dao created -----<br>";
#$rs = new COM("ADODB.RecordSet");
#$rs->Open("select * from name",$dao,1,1);
#while(! $rs->eof) {
#$f = $rs->Fields("name");
#$f = $rs->Fields(0);
#echo $f->value.'<br>';
#$rs->MoveNext();
#}
#echo $dao;
return $dao;
#return @access_connect($this->hostname, $this->username, $this->password);
}
// --------------------------------------------------------------------
/**
* Persistent database connection
*
* @access private called by the base class
* @return resource
*/
function db_pconnect()
{
return db_connect();
#return @access_pconnect($this->hostname, $this->username, $this->password);
}
//omit....
}
access dirver for ci
改了一些代码,很多都是hard code进去的 好,支持,最好也能出个Kohana的,我需要。 小试了一下,不支持查询的 ,没有返回结果。楼主搞定之后再回一声。:( :L :Q
页:
[1]