【问题标题】:Having issues with SELECT in MSSQL在 MSSQL 中遇到 SELECT 问题
【发布时间】:2016-07-21 23:07:51
【问题描述】:

我在 CodeIgniter 中处理一个项目,并试图将我的项目数据库从 mysql 更改为 mssql,但不幸的是,我在 mysql 中运行良好的所有 sql 代码都开始产生我不明白的错误。 以下方法用于验证具有给定 TIN 的用户是否存在:

public function verify_user_tin( $user_tin )
{

    $this->usid = $user_tin;

    $this->db->select('taxpayer_id ')
        ->from('crirs_tin')
        ->where('tin', $this->usid)
        ->limit(1);

    $query = $this->db->get();

    return ( $query->num_rows() == 1 ? true : false );

}

我收到以下错误:

Error Number: HY000/208
Error Number: HY000/208

General SQL Server error: Check messages from the SQL Server [208] (severity 16) [SELECT TOP 1 "taxpayer_id" FROM "crirs_tin" WHERE "tin" = '1903798293-0001' ]

SELECT TOP 1 "taxpayer_id" FROM "crirs_tin" WHERE "tin" = '1903798293-0001'

Filename: models/Account_m.php
Line Number: 45

为什么简单的 SELECT 在 mssql 中看起来很困难?请问我该如何解决这个问题?

【问题讨论】:

    标签: php sql-server codeigniter


    【解决方案1】:

    尝试删除表名周围的双引号,例如

    SELECT TOP 1 "taxpayer_id" FROM crirs_tin WHERE "tin" = '1903798293-0001'
    

    (OR) 虽然使用 SQL Server 特定语法效果更好

    SELECT TOP 1 [taxpayer_id] FROM crirs_tin WHERE [tin] = '1903798293-0001'
    

    【讨论】:

    • 感谢您的回复。 A 以某种方式意识到,当使用$this->db->select() 时,反引号被双引号替换,我想知道为什么 mssql 会出现这种情况。请问我怎样才能摆脱那些双引号?
    猜你喜欢
    • 1970-01-01
    • 2020-12-13
    • 2016-08-13
    • 1970-01-01
    • 2023-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-01
    相关资源
    最近更新 更多