Cake PHP:从Sql Server转换为Mysql

时间:2011-08-15 20:53:08

标签: php mysql sql-server cakephp

我正在测试我们网站的数据库从Cake PHP 1.2网站上的Sql Server到MySQL的转换,现在我遇到了一个关于蛋糕如何存储我的模型信息的错误。在创建我的“emp”(员工,而不是我的命名方案)模型时,我现在收到以下错误:

Notice (8): Undefined index:  id [CORE\app\models\emp.php, line 83]

以下是生成SQL的代码,应该填充模型的数据

    function findInfo($ecode = false) {
    /*The SQL statement*/
    $sql = "Select id as 'Emp__id', code as 'Emp__code',
                        first_name as 'Emp__first_name', last_name as 'Emp__last_name',
                        created as 'Emp__created', modified as 'Emp__modified',
                        password as 'Emp__password', active as 'Emp__active',
                        hidden_flag as 'Emp__hidden_flag'
                        from rs_emp as Emp
                        where code Like '$ecode' limit 1";
    $employee = $this->query($sql);
    $employee = $employee[0];
    /*the below lines return the undefined index error
    $employee['Permission'] = $this->findPermissions($employee['Emp']['id']);
    $employee['Plant'] = $this->findPlants($employee['Emp']['id']);
    return $employee;
}

错误意味着它没有找到$ employee ['Emp'] ['id'],我假设Select id as 'Emp__id'语句处理了这个问题,因为旧代码有效。这是可以纠正的吗?

我认为如果删除自定义查询而不是使用Cake的查询系统,这不会有问题,对吗?我没有开始自己替换它们的唯一原因是我不确定我是如何构建系统的,如果对上面的sql语句进行超级快速修复我会这样做,我正在测试看看将我们带到MySQL是多么容易,但从长远来看,我打算转移到Cake的查询模型。

1 个答案:

答案 0 :(得分:0)

我错误地认为Select id as 'Emp__id'方法是正确的;事实并非如此。只需删除as语句即可解决此问题,现在数组会读取正确命名的索引。我只是不知道为什么包括as语句。