PDO使用LIMIT发出语法错误

时间:2014-10-05 09:16:44

标签: php mysql pdo

我与PDO有一个sintax错误

当我尝试使用这样的限制准备好的查询时:

LIMIT:myLimit'); 我在mysql中有错误:'(

这有什么不对吗?

当我把数字放好时,就像这样:限制2

<?php 
try{
    $repFooterNews = $bdd->prepare('SELECT * FROM newss ORDER BY id DESC LIMIT :myLimit'); 
    $myLimit = 2;
    $repFooterNews->execute(array('myLimit'=>$myLimit));
    $repFooterNews->setFetchMode(PDO::FETCH_OBJ);
        while ($newBas = $repFooterNews->fetch() ){
            echo "<div class=\"newsfoot\">";
            echo "<h2> $newBas->title</h2>";
            echo "<p>$newBas->short</p>";
            echo "</div>";
            }
    }catch (PDOException $e){
    echo "Error !: " . $e->getMessage() . "<br/>"; 

    }
?>

2 个答案:

答案 0 :(得分:1)

来自PDO manual

  

具有与正在执行的SQL语句中的绑定参数一样多的元素的值数组。所有值都被视为PDO :: PARAM_STR。

尝试像这样绑定limit参数而不是execute函数:

$repFooterNews->bindParam(':myLimit', $myLimit, PDO::PARAM_INT);
$repFooterNews->execute();

答案 1 :(得分:0)

我认为问题是因为您未在execute()中正确指定占位符,请尝试此操作。

$repFooterNews->execute(array(':myLimit'=>$myLimit));