【问题标题】:PHP PDO Microsoft SQLPHP PDO 微软 SQL
【发布时间】:2016-07-02 21:41:49
【问题描述】:

但是我试图抓取数据库中的最后 5 个条目并在网站上回显他们的第一行,这就是我已经走了多远:

<?php

$dsn = "sqlsrv:Server=localhost;Database=blog";
$conn = new PDO($dsn, "*****", "*********");
$conn->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );

$sql = "SELECT TOP 5 FROM blog_posts ORDER BY blogID DESC";

foreach ($conn->query($sql) as $row) {
echo $row[1];
} 
?>

错误:

致命错误:带有消息的未捕获异常“PDOException” 'SQLSTATE[42000]:[Microsoft][SQL Server Native Client 11.0][SQL 服务器]关键字“FROM”附近的语法不正确。在 C:\inetpub\wwwroot\dev\ny\includes\left-menu.php:17 堆栈跟踪:#0 C:\inetpub\wwwroot\dev\ny\includes\left-menu.php(17): PDO->query('SELECT TOP 5 FR...') #1 C:\inetpub\wwwroot\dev\ny\index.php(281): include('C:\inetpub\wwwr...') #2 {main} 抛出 C:\inetpub\wwwroot\dev\ny\includes\left-menu.php 第 17 行

【问题讨论】:

  • 那么究竟是什么问题?
  • @Mureinik 它不回显任何内容
  • 设法解决它....在 TOP 5 之后缺少一个 *

标签: php sql-server pdo


【解决方案1】:

$sql = "SELECT TOP 5 FROM blog_posts ORDER BY blogID DESC"; 

应该是

$sql = "SELECT TOP 5 * FROM blog_posts ORDER BY blogID DESC";

【讨论】:

  • 这能完全解决问题吗?你不应该获取结果吗?你的foreach循环sqlserv_query值,如果失败返回false的语句结果。
  • @parfait 是的,它不会返回任何错误并且可以按我的意愿工作:)
猜你喜欢
  • 1970-01-01
  • 2011-05-25
  • 1970-01-01
  • 2015-04-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多