SAE codeigniter mysql数据库链接

    最近接触SAE,真是个好东西,做的网站可以让所有人都能访问了,SAE比本地的服务器来说并没有麻烦,只是有些特殊的配置比较麻烦而已。

   从本机的MYSQL数据库迁移到SAE的数据库,其实很容易。如果需要本地的数据库里面的数据,就需要首先借助phpadmin去导出SQL文件。

   点击应用进去,左边的菜单栏选择 服务管理下面的 MYSQL -->管理MYSQL 就是phpmyadmin页面了,直接导入刚才到处的SQL文件就可以了。


  要注意,因为本地的数据库和SAE的数据库的访问是有区别的,SAE的mysql配置很多是SAE本身提供的常量,不过默认选择创建应用的时候,选择codeigniter框架下面的配置就是好的,老版本的需要修改 config/database.php  文件中的$db['default']['dbdriver'] = 'mysql';为 mysqli但是新版本的亲测已经没有问题,用默认的配置可以运行。

 codeigniter之所以选用,是因为其良好的MVC框架,所以还是希望model里面的API管用,实际上确实是管用的,仅需要注意,由于 config/database.php文件中现在加入了$db['default']['autoinit'] = TRUE;这样一句,意思就是说数据库默认自动链接,不需要管原先的数据库名称,账户密码了,默认的配置都用常量组织好了。那么问题就显而易见,原先在model中的数据库配置都不管用了,相反还会带来错误。因此需要修改一句

如codeigniter传统的数据库配置为:

 $config['hostname'] = "localhost";
        $config['username'] = "root";
        $config['password'] = "123456";
        $config['database'] = "homepage";
        $config['dbdriver'] = "mysql";
        $config['dbprefix'] = "";
        $config['pconnect'] = FALSE;
        $config['db_debug'] = TRUE;
        $config['cache_on'] = FALSE;
        $config['cachedir'] = "";
        $config['char_set'] = "utf8";
        $config['dbcollat'] = "utf8_general_ci";
        $this->load->database($config);

但是现在仅需要一句话代替:

$this->load->database();

其余的代码完全不用变化就可以了。


顺便说下,SAE的地址重写太方便了,官方也给出了去掉index.php的代码

config.yaml文件修改为如下即可:

name: codeigniter
version: 2
handle:
- compress:  if ( out_header["Content-type"]=="text/css" ) compress
- compress:  if ( out_header["Content-type"]=="text/javascript" ) compress
- compress:  if ( out_header["Content-type"]=="application/javascript" ) compress
- rewrite: if(!is_dir() && !is_file() && path~"/") goto "/index.php/%{QUERY_STRING}"


另外为简便的使用js,css等数据文件

可以在application/config/routes.php文件中修改如下语句

$route['default_controller'] = "Blog";
$route['404_override'] = '';
$route['(:any)']="blog/$1";

这里Blog是我的控制器文件名称

我的CSS,JS,图片等文件都放在根目录下,代码中可以直接访问


  • data文件夹就在根目录下,通过routes.php的配置就节省了很多其它代码,当然这些的前提都是隐去了index.php毕竟在路径中出现这个东西是很怪异的行为。


    给迁移的人一个建议,因为有些文件不太一样,所以不建议直接把原来的codeigniter的文件夹直接覆盖掉SAE codeigniter,建议分别把数据文件和view的文件一个个的复制就好了,想config,database这些文件夹就不要随便动了,更不要覆盖。总的来说SAE真的很不错,放上去作出的东西所有人都能看了,不会再局限于局域网里面。


    以上内容亲测无误,与2015年3月5日。

      


    你可能感兴趣的:(WEB,SAE,codeigniter,数据库配置)