这是我的代码
$PageNumber = $_GET["p"];
if (!isset($PageNumber) || $PageNumber < 1 || !is_int($PageNumber))
$PageNumber = 1;
$PageSize = 3;
$strSQL = $dbCon->prepare("SELECT * FROM News WHERE isActive = 1 ORDER BY NewsID DESC LIMIT (:PageNumber - 1)*:PageSize, :PageSize;");
$strSQL->bindParam(":PageNumber", $PageNumber, PDO::PARAM_INT);
$strSQL->bindParam(":PageSize", $PageSize, PDO::PARAM_INT);
$strSQL->execute();
$Result = $strSQL->fetchAll();
if (count($Result) != 0) {
print_r($Result);
} else {
echo "no record";
}
我确定行存在,但输出为
no record
,当我用默认值(如LIMIT 0,3
)替换参数时,效果很好。 最佳答案
由于您没有捕获异常,但是我想您在做什么错。在PDO中,您的bindValue或bindParam变量应等于查询中使用的变量。我的意思是
$strSQL = $dbCon->prepare("SELECT * FROM News WHERE isActive = 1 ORDER BY NewsID DESC LIMIT :Start, :PageSize;");
$strSQL->bindParam(":Start",($PageNumber - 1)*$PageSize, PDO::PARAM_INT);
$strSQL->bindParam(":PageSize", $PageSize, PDO::PARAM_INT);
关于php - PHP PDO fetchAll()返回空数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11360451/