【问题标题】:MSSQL query not working after adding PHP variable to the LIMIT将 PHP 变量添加到 LIMIT 后 MSSQL 查询不起作用
【发布时间】:2013-05-09 06:18:16
【问题描述】:

这是我之前在 MySQL 环境中成功使用过的查询。当我尝试使用 MSSQL 时。它在此声明中出错:

$result = mssql_query("SELECT * FROM DriverAppInfo ORDER BY appdate LIMIT $startrow, 20") 

$startrow 由以下定义:

if (!isset($_GET['startrow']) or !is_numeric($_GET['startrow'])) {
  $startrow = 0;
} 
else {
  $startrow = (int)$_GET['startrow'];
}   

查询中的 $startrow 是否需要用单引号括起来? 提前谢谢你

【问题讨论】:

    标签: php sql-server variables


    【解决方案1】:

    limit 关键字在 MSSQL / Sql Server 领域中转换为 top

    您需要根据 MySQL / MSSQL 对其进行抽象。记住:

    PDO 不提供数据库抽象;它不会重写 SQL 或 模拟缺少的功能。您应该使用成熟的抽象 如果您需要该设施,请分层。

    我还要提到,MSSQL 取决于版本limit, offset 可能不受支持。查看 this 了解 MSSQL 分页方法。

    【讨论】:

      【解决方案2】:

      1) 检查mssql_get_last_message()

      2) 显示最终 SQL, 使用类似的东西:

      $sql = "SELECT * FROM DriverAppInfo ORDER BY appdate LIMIT $startrow, 20";
      $result = mssql_query($sql);
      
      echo $sql;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-03-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多