Cake PHP:从Sql Server到Mysql的转换
我正在一个Cake PHP1.2站点上测试我们站点的数据库从Sql Server到MySQL的转换,我在Cake如何存储我的模型信息时遇到了一个错误。在创建我的“emp”(员工,而不是我的命名方案)模型时,我现在遇到以下错误:Cake PHP:从Sql Server到Mysql的转换,php,mysql,sql-server,cakephp,Php,Mysql,Sql Server,Cakephp,我正在一个Cake PHP1.2站点上测试我们站点的数据库从Sql Server到MySQL的转换,我在Cake如何存储我的模型信息时遇到了一个错误。在创建我的“emp”(员工,而不是我的命名方案)模型时,我现在遇到以下错误: Notice (8): Undefined index: id [CORE\app\models\emp.php, line 83] 下面是生成SQL的代码,它应该填充模型的数据 function findInfo($ecode = false) {
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\uu id'
语句解决了这个问题,因为旧代码起作用了。这是可以纠正的吗
我想,如果删除自定义查询,而使用Cake的查询系统,这不会是一个问题,对吗?我自己没有开始替换它们的唯一原因是我不确定如何构建系统,我也没有构建系统,如果上面的sql语句有一个超级快速修复程序,我会这么做,我目前正在测试将我们迁移到MySQL有多容易,但从长远来看,我确实计划转向Cake的查询模型。我犯了一个错误,假设
选择id为'Emp\uu id'
方法是正确的;事实并非如此。当语句解决了这个问题时,只要删除,数组就会读取正确命名的索引。我只是不知道为什么会包含as语句。查询返回什么?你能打印($employee)
吗;您正在选择字段id
并将其命名为Emp\uu id
,因此数组中自然没有id
键。我是否遗漏了一些东西,或者不应该是另一种情况(选择Emp\uuu id作为id)
?谢谢你建议Webbiedave,我忘了我可以用数组来做到这一点;它没有按预期存储值;我不知道为什么它会把它们作为Emp_id来拉,但是as语句完全没有必要……至少现在我使用的是mysql。不过,我不知道为什么以前会有。