在MSSQL中遇到SELECT问题

时间:2016-07-21 23:07:51

标签: php sql-server codeigniter

AM在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

为什么mssql中的简单SELECT似乎很难?请问我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

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

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'