网上倒是有不少Codeigniter数据库操作的介绍,这里做一个汇总。
//查询:
$query = $this->db_query("SELECT * FROM table");
==================================
//result() 返回对象数组
$data = $query->result();
用codeigniter也有一段时间了,一直没有做什么总结。现在总结一些Codeigniter操作数据库表的优化写法,虽说不全,但是也确实可以帮助那些刚刚上手CI的同学。
链接数据库
$this->load->database();//手动连接数据库
//连接多数据库
$DB1 = $this->load->database('group_one', TRUE);
$DB2 = $this->load->database('group_two', TRUE);
本示例Codeigniter注册登录代码源自一个codeigniter的项目,现分享下~
由于使用了 Active Record 类,一般数据库操作只有两层,即是C和V
controllers/login.php文件:
<?php
class Login extends CI_Controller {
private $pass = '';
Codeigniter项目访问时如果出现如下错误提示:
Error with CACHE directory.
检查一下cache目录的权限,就会发现
drwxr-xr-x 3 root root 4096 Mar 1 13:53 cache
这时候只要将其改为可读写,
# chmod 777 cache
问题解决。
CodeIgniter的文件上传类允许文件被上传。您可以设置指定上传某类型的文件及指定大小的文件。
上传文件普遍的过程:
一个上传文件用的表单,允许用户选择一个文件并上传它。
当这个表单被提交,该文件被上传到指定的目录。
同时,该文件将被验证是否符合您设定的要求。
一旦文件上传成功,还要返回一个上传成功的确认窗口。
下面是表单:
用codeigniter开发一个子网站,之后想和原来的论坛进行同步,包括同步登陆和双向通信
先装好ucenter,然后新建一个other的应用,把生成的代码拷出来,新建一个config.ini.php到你的uc_client,ucenter会产生一个yourdomain.com/api/uc.php的请求,/api/uc.php不需要填写,要保证ucenter请求正确位置,才能做到双向通信
把uc_client复制到你的网站,目录可以自己定,就根目录吧。如果你把api目录放到uc_client目录低下,那么应用的请求路径yourdomain.com/uc_client,如果api也放在根目录请求地址uc_client可以去掉
建一个l
PHP转换文件编码是一个比较简单的事情,但是在开发中传递中文参数的时候,有时候不知道是什么编码,结果造成了乱码的现象。这里有个非常方便的解决办法,可以自动识别编码并转换为UTF-8。具体代码如下:
function characet($data){
if( !empty($data) ){
很多人在PHP输出一个二维数组的时候出现“Fatal error: Cannot use object of type stdClass as array in……”。
解决办法分析如下:
现有这样一个二维数组:
Array (
[0] => stdClass Object (
[id] => 1
[title] => 郑州网建
相交其他CodeIgniter的类库,tank_auth,配置简单,使用也简单,并且作者也一直在更新,现在是1.0.9。1.0.8已经支持CI2.0了,我现在一般的项目都是用它,所以推荐给大家。
安装Tankauth的步骤
下载最新版类库(下载地址:http://www.konyukhov.com/soft/tank_auth/tank_auth.zip)
解压文件
将application下相应的文件复制到你的CIapplication文件夹下。
将captcha文件夹复制到你的CI文件夹(项目目录,和application同一个目录)下.并确保该目录在web服务器下可写。
在你的
由于新浪SAE对文件权限的限制,cache目录无法修改权限,因此原版Codeigniter无法直接使用。可以尝试codeIgniter 2.10 for SAE:http://code.google.com/p/ci-sae/。
在database.php中配置如下:
$db['default']['hostname'] = SAE_MYSQL_HOST_M;
$db['default']['username'] = SAE_MYSQL_USER_Camnpr;