CodeIgniter框架连接读取MS Access数据库文件
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了CodeIgniter框架连接读取MS Access数据库文件,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4871字,纯文字阅读大概需要7分钟。
内容图文
config/database.php文件中 //默认的mysql数据库 $db[‘default‘] = array( ‘dsn‘ => ‘‘, ‘hostname‘ => ‘127.0.0.1‘, ‘username‘ => ‘xxx‘, ‘password‘ => ‘xxx‘, // ‘hostname‘ => ‘localhost‘, // ‘username‘ => ‘root‘, // ‘password‘ => ‘admin‘, ‘database‘ => ‘xxx‘, ‘dbdriver‘ => ‘mysqli‘, ‘dbprefix‘ => ‘ecs_‘, ‘pconnect‘ => FALSE, ‘db_debug‘ => TRUE, ‘cache_on‘ => FALSE, ‘cachedir‘ => ‘‘, ‘char_set‘ => ‘utf8‘, ‘dbcollat‘ => ‘utf8_general_ci‘, ‘swap_pre‘ => ‘‘, ‘encrypt‘ => FALSE, ‘compress‘ => FALSE, ‘stricton‘ => FALSE, ‘failover‘ => array(), ‘save_queries‘ => TRUE ); //access数据库(这个是用的odbc驱动) $db[‘access‘][‘hostname‘] = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=D:/public/Database1.mdb";//你自己的数据库路径 //$db[‘access‘][‘hostname‘] = "pdo:DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=D:/public/Database1.mdb";//这里用odbc而不是pdo_odbc驱动, $db[‘access‘][‘username‘] = ""; $db[‘access‘][‘password‘] = ""; //$db[‘access‘][‘database‘] = "D:/public/Database1.mdb";//测试有没有都没有影响 $db[‘access‘][‘dbdriver‘] = "odbc"; //$db[‘access‘][‘dbdriver‘] = "pdo";//这里用odbc而不是pdo_odbc驱动,$db[‘access‘][‘dbprefix‘] = "";
$db[‘access‘][‘pconnect‘] = TRUE;
$db[‘access‘][‘db_debug‘] = TRUE;
$db[‘access‘][‘cache_on‘] = FALSE;
$db[‘access‘][‘cachedir‘] = "";
$db[‘access‘][‘char_set‘] = "utf8";
$db[‘access‘][‘dbcollat‘] = "utf8_general_ci";
$db[‘access‘][‘swap_pre‘] = ‘‘;
$db[‘access‘][‘autoinit‘] = TRUE;
$db[‘access‘][‘stricton‘] = FALSE;
使用时:
//读取access中数据 $access_db = $this->load->database(‘access‘, TRUE); $access_db->select(‘*‘)->get(‘user‘)->result_array(); //读取mysql中的数据 $mysql_db = $this->load->database(‘default‘, TRUE); $mysql_db->select(‘*‘)->get(‘user‘)->result_array(); //或者还是原先的mysql查询 $this->db->select(‘*‘)->get(‘user‘)->result_array();
2、动态加载配置,由于access文件数据库名称可能随时变动,所以放在config/database.php文件中就不合适了所以需要随时加载切换
//直接在controller中(这个是用的pdo_odbc驱动) $dbname = ‘D:/public/Database1.mdb‘;//名称随时可以改变 $access[‘hostname‘] = "odbc:DRIVER={Microsoft Access Driver (*.mdb)}; DBQ={$dbname}"; //$access[‘hostname‘] = "DRIVER={Microsoft Access Driver (*.mdb)}; //这里不用odbc而是用pdo_odbcDBQ={$dbname}"; $access[‘username‘] = ""; $access[‘password‘] = ""; $access[‘database‘] = $dbname;//测试有没有都没影响 $access[‘dbdriver‘] = "pdo"; //$access[‘dbdriver‘] = "odbc";//这里不用odbc而是用pdo_odbc $access[‘dbprefix‘] = ""; $access[‘pconnect‘] = TRUE; $access[‘db_debug‘] = TRUE; $access[‘cache_on‘] = FALSE; $access[‘cachedir‘] = ""; $access[‘char_set‘] = "utf8"; $access[‘dbcollat‘] = "utf8_general_ci"; $access[‘swap_pre‘] = ‘‘; $access[‘autoinit‘] = TRUE; $access[‘stricton‘] = FALSE; //加载 $access_db = $this->load->database($access, true); //读取access数据 $access_db->select(‘*‘)->get(‘user‘)->result_array(); //而mysql数据库仍然可以这样: $this->db->select(‘*‘)->get(‘user‘)->result_array();
上面例子中虽然用的结构化查询,后面简称AR查询,但是实际上测试用AR来查询access数据库有很多的限制:
1、AR查询可以使用,但是有数组形式的都无效,value值为字符串的都识别为空字符串,包含insert,update方法,以及where的数组形式(where的字符串等其它形式可以使用)
2、AR查询中的like()方法不支持,用sql查询可以,但需要注意的是access原生语句是用*来匹配,但由于php用的pdo或odbc来链接,所以还是用%来匹配
3、AR查询中的select_sum()、select_svg()等方法都不能用,主要原因access中别名不能是原本名称,但是可以select(‘sum(id) as abc‘),同样别名不要和原有名称一致
4、顺便发现row_array()或者result_array()的一个问题,即别名与另一个想获取的字段重名时,此方法只能取出一个字段,而真正的mysql,accdess语句会产生两个同名字段,所以别名一定不要与要查询的其它字段名相同
5、access不支持limit语句,可以在select中用top n的形式获取
6、insert如果用原生access sql语句,必须加上into,即"insert into ..."
暂时发现上方的不同,其余join、group by,order_by等方法都与mysql一致。
但是AR这么多限制,还不如直接用原生sql语句来写。但是原生sql语句中防注入等需要注意(CI中的$this->db->escape($title)方法测试不起作用),所以建议用pdo_odbc驱动,用pdo中的方法:
//PDO查询 $sql="SELECT * FROM user WHERE user_name=:user_name"; $pdoStatement=$access_db->conn_id->prepare($sql);//注意conn_id $user_name=‘abc‘; $pdoStatement->bindValue(‘:user_name‘,$user_name); $pdoStatement->execute(); $result=$pdoStatement->fetchAll(PDO::FETCH_ASSOC);
可以封装成相关的类来方便访问,github上搜下会很多,参照写就可以(也可以参照原先自己写的这个,这个是读取mysql数据库的,而且很不完善)。
CodeIgniter框架连接读取MS Access数据库文件
标签:作用 nmp xxx drive php 分享 ros 改变 mysq
本文系统来源:http://www.cnblogs.com/vishun/p/6526456.html
内容总结
以上是互联网集市为您收集整理的CodeIgniter框架连接读取MS Access数据库文件全部内容,希望文章能够帮你解决CodeIgniter框架连接读取MS Access数据库文件所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。