为什么这个 PHP/PDO sqlsrv 查询没有返回结果?
Why is this PHP/PDO sqlsrv query not returning results?
我正在尝试使用 PHP 中的 PDO 从 mssql 数据库 table 获取结果,但它没有返回任何结果。但是,我可以数 table 行 - 有什么建议吗?
//this one working fine return 500 recrod in table
$sql = "SELECT count(*) FROM Content";
$stmt = $conn->prepare($sql);
$stmt->execute();
$num_rows = $stmt->fetchColumn();
//this one not returning anything
$sql = " SELECT c.* FROM (
SELECT ROW_NUMBER() OVER(ORDER BY ID) AS RowID,* FROM Content
) AS c
WHERE c.ID > :row_start AND c.ID <= :row_end
";
$stmt = $conn->prepare($sql);
$stmt->bindParam(':row_start', $row_start);
$stmt->bindParam(':row_end', $row_end);
$stmt->execute();
$allsuck = $stmt->fetchAll(PDO::FETCH_COLUMN);
print_r($allsuck);
table 信息:
Array
(
[0] => ID
[1] => Title
[2] => Fulldata
[3] => description
[4] => Catid
[5] => language
[6] => Created
[7] => Userid
[8] => MetaKey
[9] => Thumbnail
[10] => Thumbnail_desc
[11] => Hits
[12] => Active
[13] => ModifiedDate
[14] => ModifiedBy
[15] => Fb_image
[16] => important
[17] => hashTags
)
尝试将子查询移至主查询,因为在这种情况下执行子查询对您没有任何作用:
SELECT ROW_NUMBER() OVER(ORDER BY ID) AS RowID,*
FROM Content
WHERE Content.ID > :row_start
AND Content.ID <= :row_end
SELECT * FROM (
SELECT ROW_NUMBER() OVER(ORDER BY ID) AS RowID,*
FROM Content
) data
WHERE data.RowID > :row_start
AND data.RowID <= :row_end
您在错误的列上进行过滤。 Id
不会为你做任何事情(否则为什么要用 ROW_NUMBER()
呢?)。过滤器应该在 RowId
我正在尝试使用 PHP 中的 PDO 从 mssql 数据库 table 获取结果,但它没有返回任何结果。但是,我可以数 table 行 - 有什么建议吗?
//this one working fine return 500 recrod in table
$sql = "SELECT count(*) FROM Content";
$stmt = $conn->prepare($sql);
$stmt->execute();
$num_rows = $stmt->fetchColumn();
//this one not returning anything
$sql = " SELECT c.* FROM (
SELECT ROW_NUMBER() OVER(ORDER BY ID) AS RowID,* FROM Content
) AS c
WHERE c.ID > :row_start AND c.ID <= :row_end
";
$stmt = $conn->prepare($sql);
$stmt->bindParam(':row_start', $row_start);
$stmt->bindParam(':row_end', $row_end);
$stmt->execute();
$allsuck = $stmt->fetchAll(PDO::FETCH_COLUMN);
print_r($allsuck);
table 信息:
Array
(
[0] => ID
[1] => Title
[2] => Fulldata
[3] => description
[4] => Catid
[5] => language
[6] => Created
[7] => Userid
[8] => MetaKey
[9] => Thumbnail
[10] => Thumbnail_desc
[11] => Hits
[12] => Active
[13] => ModifiedDate
[14] => ModifiedBy
[15] => Fb_image
[16] => important
[17] => hashTags
)
尝试将子查询移至主查询,因为在这种情况下执行子查询对您没有任何作用:
SELECT ROW_NUMBER() OVER(ORDER BY ID) AS RowID,*
FROM Content
WHERE Content.ID > :row_start
AND Content.ID <= :row_end
SELECT * FROM (
SELECT ROW_NUMBER() OVER(ORDER BY ID) AS RowID,*
FROM Content
) data
WHERE data.RowID > :row_start
AND data.RowID <= :row_end
您在错误的列上进行过滤。 Id
不会为你做任何事情(否则为什么要用 ROW_NUMBER()
呢?)。过滤器应该在 RowId