CakePHP中sqlserver.php中update()函数中的问题
我们已经在CakePHP中开发了我们的应用程序,该应用程序使用MYSQL运行,运行良好。PHP版本是5.4.16,Apache 2.4.4,最新的XAMP。CakePHP版本:2.3.0 我们已经在MSSQL中有了类似的数据库。现在我们还想用这个MSSQL运行我们的应用程序 我们正在为MSSQL驱动程序使用php_pdo_sqlsrv_54_ts.dll和php_sqlsrv_54_ts.dll。它的sql server 2005 每当我们更新表中的值时,我们都使用Model.Php的UpdateAll(),它进一步调用相应数据源的update()。我们的代码是这样的CakePHP中sqlserver.php中update()函数中的问题,php,sql-server,cakephp,cakephp-2.0,cakephp-model,Php,Sql Server,Cakephp,Cakephp 2.0,Cakephp Model,我们已经在CakePHP中开发了我们的应用程序,该应用程序使用MYSQL运行,运行良好。PHP版本是5.4.16,Apache 2.4.4,最新的XAMP。CakePHP版本:2.3.0 我们已经在MSSQL中有了类似的数据库。现在我们还想用这个MSSQL运行我们的应用程序 我们正在为MSSQL驱动程序使用php_pdo_sqlsrv_54_ts.dll和php_sqlsrv_54_ts.dll。它的sql server 2005 每当我们更新表中的值时,我们都使用Model.Php的Updat
if ($this->Configurationtable->updateAll(array('Configurationtable.configuration_optionsetting' => $limit ),
array('Configurationtable.configuration_optionname =' => $optionName))) {
$this->Session->setFlash('The Result Limit has been updated');
$this->redirect(array('action' => 'edit'));
} else
{
$this->Session->setFlash('The configuration could not be saved. Please, try again.');
}
现在,这在MySql中运行良好,并生成以下更新查询
UPDATE ipa.configurationtable AS Configurationtable SET Configurationtable.configuration_optionsetting = 12 WHERE Configurationtable.configuration_optionname = 'searchPaginationLimit'
但在MS Sql Server中,它失败并生成完全错误的查询,这是错误的
SELECT [Configurationtable].[id] AS [Configurationtable__id] FROM [configurationtable] AS [Configurationtable] WHERE [Configurationtable].[configuration_optionname] = N'searchPaginationLimit'
现在,如果我使\lib\Cake\Model\Datasource\Database\Sqlserver.php中的Update()函数类似于\lib\Cake\Model\Datasource\Database\Mysql.php中的Update(),那么它就可以正常工作。它生成正确的“更新”查询
我不明白为什么会这样?是我做错了什么,还是蛋糕上有虫子
任何版本都会有很大帮助。我会的,但首先确保升级到最新版本不会解决您的问题。另请参阅