yibin001 发表于 2012-09-06 11:25

有用Cakephp的朋友么?被郁闷到了。

同样的一段代码,在我的pc上(xampp/php5.3.8/apache2)和虚拟机(linux/xampp/php5.3.8/apache2)上运行的结果一致,但到了服务器上(centos5.5/php5.3.16/nginx)得到的结果与本机不一致,导致后面的逻辑都错了,不知道问题在哪里:

$user = $this->Login->find('first',array('conditions'=>array(
'Login.username = '=>$username,
'Login.password = '=>$password
)));

这是一段判断登录的逻辑,在后面的代码中是用$user['Login']来判断的,在我PC和虚拟上能取到$user['Login']的正确值,print_r出来后:
Array ( => Array ( => 9 => aaaaaa => 04b35cf604476680b22c4bb8b0888e4a => 2012-08-03 10:13:38 => 10 => 1 => 2012-08-03 10:14:07 => 192.168.12.78 => 2 ) )

但代码放到服务器上就行不通了,登录老进不去,print_r($user)后:
Array ( => Array ( => 9 => aaaaaa => 04b35cf604476680b22c4bb8b0888e4a => 2012-08-03 10:13:38 => 10 => 1 => 2012-08-03 10:14:07 => 192.168.12.78 => 2 ) )

由Key为Login直接变成下标数组了,代码里的$user['Login']自然无效了。。。。

震惊了。。。这问题出在哪?

xinglu1983 发表于 2012-09-06 11:57

那你需要看一下cakephp的find是怎么写的了。

yibin001 发表于 2012-09-06 14:08

真的是只能追源代码了。。。。
发现在pdo这边出问题了,服务器上用pdo_mysql无法查询到表名,于是数组就成下标数组了。
我本机的pdo_mysql是:
PDO Driver for MySQL        enabled
Client API version        mysqlnd 5.0.8-dev - 20102224 - $Revision: 310735 $

而服务器上却是:
pdo_mysql
PDO Driver for MySQL, client library version        5.5.3-m3

服务器上是不是版本不对???

hbeimf 发表于 2012-09-06 17:26

很久前用过cake发现诸多问题,伤人伤神,所以就没用了,还是看cake实现吧,:em03::em03::em03::em03:

imbiss 发表于 2012-09-08 03:09

正在用一个cakephp like的kata框架。这个model查询的用法是一致的。返回数字索引的是正确的,就是服务器上是正确的。 我看过2的结果,从来没见过1的结果。
你确认两个cakephp版本相同?

yibin001 发表于 2012-09-10 16:12

imbiss 发表于 2012-09-08 03:09 static/image/common/back.gif
正在用一个cakephp like的kata框架。这个model查询的用法是一致的。返回数字索引的是正确的,就是服务器上是 ...

这个问题已经确定了,跟php的编译参数有关。

imbiss 发表于 2012-09-11 15:11

什么参数会影响数组索引呢?

http80 发表于 2012-09-11 22:44

还是看手册吧,这东西没有用过。
页: [1]
查看完整版本: 有用Cakephp的朋友么?被郁闷到了。