sqlserver PDO查询错误

时间:2016-05-03 16:20:27

标签: php pdo sql-server-2014

我要执行此查询:

try {
      $dbh = new PDO('sqlsrv:Server=localhost;Database=database','user','pass');
} catch(PDOException $e) {
      echo $e->getMessage();
}     
      $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
      $checkQuery = "SELECT `userName` FROM `user_Status` WHERE `userName` = :userName";
      $prepared = $dbh->prepare($checkQuery);
      $prepared->bindValue(':userName', $_POST['username']);
      $prepared->execute();
      $count = $prepared->rowCount();

我在执行此查询时遇到错误,我花了3-4个小时搜索类似的错误并扫描我的代码试图找到它但我找不到它。我想也许其他一些眼睛可能会指出它或者我只是做了一些完全错误的事情并且没有意识到这一点。这是错误:

  

致命错误:带有消息'SQLSTATE [42000]的未捕获异常'PDOException':[Microsoft] [SQL Server的ODBC驱动程序11] [SQL Server]'''附近的语法不正确。在C:\ inetpub \ wwwroot \ InOutBoard \ authorize.php:68堆栈跟踪:#0 C:\ inetpub \ wwwroot \ InOutBoard \ authorize.php(68):PDOStatement-> execute()#1 {main}抛出第68行的C:\ inetpub \ wwwroot \ InOutBoard \ authorize.php

第68行是执行语句,但我没有看到任何问题,我没有看到它在''.'附近得到错误的语法错误,因为我找不到任何我的代码或任何我认为都会导致错误的内容,我认为我也没有使用任何保留字。我曾经有过“SELECT userName FROM Database.user_Status但我甚至尝试删除它并且没有任何改变。我确信我有正确的数据库,用户和密码以及表。任何帮助?

1 个答案:

答案 0 :(得分:0)

谢谢@ frz3993和Marcus的帮助。我通过删除反引号修复了问题,因为我习惯将它们用于mySQL但忘记了我不需要它们用于mssq