Hex 发表于 2008-4-28 11:34:26

解决 1.6.1 版本中的 MSSQL 驱动 BUG

症状:
An Error Was Encountered
Error Number:

SELECT "EventID", "Title" FROM "table" ORDER BY "StartDate"
多了很多双引号,导致 SQL 错误。

解决方案:
找到 system/database/drivers/mssql/mssql_driver.php 中的第 461 行(或附近),修改
$item = preg_replace('/(^'.$lbound.')([\w\d\-\_]+?)(\s|\)|$)/iS', '$1"$2"$3', $item);

$item = preg_replace('/(^'.$lbound.')([\w\d\-\_]+?)(\s|\)|$)/iS', '$1$2$3', $item);
然后,在其第 465 行(或附近),修改
return "\"{$item}\"";

return "{$item}";

此为民间解决方案,并且此 BUG 已经提交,请关注官方修正补丁!

yeyunan 发表于 2008-4-28 15:59:56

谢谢.....最近可能刚好要用mssql

nase 发表于 2008-4-30 17:06:25

mysqli_driver.php中是单引号的,不知道有问题没有?

$item = preg_replace('/(^'.$lbound.')([\w\d\-\_]+?)(\s|\)|$)/iS', '$1`$2`$3', $item);

return "`{$item}`";

[ 本帖最后由 nase 于 2008-4-30 17:08 编辑 ]

Hex 发表于 2008-4-30 17:56:48

MySQL 无此问题。

erebus 发表于 2009-4-2 15:55:04

刚好要用mssql ,tks
回帖记号一下

yuwen002 发表于 2009-4-2 19:28:55

我在用1.7.1,不知道有没有这此问题
页: [1]
查看完整版本: 解决 1.6.1 版本中的 MSSQL 驱动 BUG