30 / 10 / 2013 buling

      公司竟然还在用qee这N年没人维护的框架,所以就索性淘汰掉,在DB连接方面没有选择任何ORM框架,而是只提供了一个简单的mysql类库,好像这个sql是从emlog博客演变而来,我个人还是很喜欢用,但DB有个小问题,如有两个DB使用了不同权限的帐号进行操作时

//db1和db2的配置只是库不同,帐号密码一样
 $db1 = Db_Mysql::get_instance('db1');
 $sql = 'select * from xx where id=%d';
 $db1->query($sql, array(2));
 $db2 = Db_Mysql::get_instance('db2');
 $sql = 'select * from oo where id=%d';
 $db2->query($sql, array(2));

这样的代码会报错:db1.oo表不存在,之前也出现过,但实在解不了,所以就索性google了一下“php mutiple mysql connect”,然后答案就有了:
http://stackoverflow.com/questions/274892/how-do-you-connect-to-multiple-mysql-databases-on-a-single-webpage
他这么写到

//You can make multiple calls to mysql_connect(), but if the parameters are the same you need to pass true for the '$new_link' (fourth) parameter, otherwise the same connection is reused.
$dbh1 = mysql_connect($hostname, $username, $password);
$dbh2 = mysql_connect($hostname, $username, $password, true);

09 / 10 / 2013 buling

     之前说过现在的开发环境很差,做开发太难,几经周折无果后只能退而求其次在本地搭建了一个apache环境,凑合着用。所有的静态页面已经资源都访问本机,至少不影响开发,且多用ajax,运营支撑系统更是extjs开发,数据全是来自ajax,再本地搭建完成后配置的域与正是环境不一样,是为了方便开发,不再正式本地之间来回切换,如,线上是 xxx.qq.com,本地为vartu.qq.com来访问,只要不跨主域名还是没有问题,但是遇到一个问题,很多用了ajax请求,那么就跨域了,所以在apache做了一个rewrite,以前没发现rewrite竟然可以跨域,下面来说实现
     1、打开apache安装目录下面的conf/httpd.conf,去除下面配置前的“;”
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule rewrite_module modules/mod_rewrite.so

     2、修改站点配置信息如下

<VirtualHost *:80>
ServerAdmin webmaster@dummy-host.x
DocumentRoot "F:\AppServ\www\softadmin\public"
ServerName game.oa.com
ErrorLog "logs/dummy-host.x-error.log"
CustomLog "logs/dummy-host.x-access.log" common
RewriteEngine on
RewriteRule ^/index\.php(.*)$ http://xxx.qq.com/index.php$1 [L,R=301,P,NC]
</VirtualHost>

     3、如果有登录态,即是需要带cookie的情况下,可以修改vartu.qq.com的cookie信息为一个登录过的cookie即可,rewrite也支持发送cookie,如“^/index\.php(.*)$ http://xxx.qq.com/index.php$1 [L,R=301,P,NC,CO=PHPSESSID:sadf2323423sdfd:.qq.com:/:1440]”
更多rewrite的规则可以访问 http://httpd.apache.org/docs/current/rewrite/flags.html