【问题标题】:Codeigniter MSSQL query error but fine in SQL StudioCodeigniter MSSQL 查询错误但在 SQL Studio 中正常
【发布时间】:2014-05-03 07:41:22
【问题描述】:

我将 Codeigniter 与 MSSQL 数据库一起使用并遇到查询问题,我通过以下方式使用活动记录类

$this->db->protect_identifiers('content');
$this->db->protect_identifiers('url');
$this->db->select('url.url AS url, content.title AS title, content.id AS id');
$this->db->from('content');
$this->db->where('content.parent',$parent);
$this->db->where('content.menu',1);
$this->db->where('content.live',1);
$this->db->where('url."default"',1);
$this->db->join('url', 'content.id = url.content_id');
$this->db->order_by('content."order"','ASC');

构建以下查询并导致错误

SELECT url.url AS url, content.title AS title, content.id AS id FROM content JOIN url ON    content.id = url.content_id WHERE content.parent = 0 AND content.menu = 1 AND content.live = 1 AND url."default" = 1 ORDER BY content."order" ASC

如果我通过 SQL Studio 运行相同的查询,它执行得很好

有什么想法吗?

【问题讨论】:

  • 'url."default"''url.default'
  • 'content."order"''content.order'
  • 是的,我就是这样开始的,这给出了错误 - 关键字“默认”附近的语法不正确。
  • 你能准确说出你想从表格中得到什么吗?
  • 只是一个标题列和另一个由 id 链接的 url,我现在得到的错误是 order by 子句

标签: php sql-server codeigniter


【解决方案1】:

您有一个名为“ORDER”的字段。不要将 SQL Server 中的字段命名为保留字。

【讨论】:

  • 我猜这是您将 MySQL 转移到 MSSQL 时的一些问题
猜你喜欢
  • 1970-01-01
  • 2019-08-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多