准备好的SQL查询,UNION和LIMIT - 语法

时间:2013-09-23 14:20:32

标签: php mysql sql

我遇到了使用限制的SQL查询问题。我想要一个可变限制参数。正如我在我的网站上成功完成的那样,我想使用LIMIT number =:number之类的东西然后指定'number'=> $ numberResults。

不知何故,这不起作用..(我试过,如果我在我的查询中写出LIMIT 20它工作正常,但这不是问题。

这是我的代码:

connexion_bdd.php

<?php
        try
        {
            $bdd = new PDO('mysql:host=localhost;dbname=mise_a_quai_tardive', 'root', '');
        }
        catch (Exception $e)
        {
                die('Erreur : ' . $e->getMessage());

        }
 ?>

mise_a_quai_tardive.php 这给了我一些问题

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <link rel="stylesheet" href="style.css" />
    <title>Module Suivi des Mises à Quai Tardives</title>
</head>

<body>
<?php include("connexion_bdd.php"); ?>
<?php
  $resultatsParPage = 15;
$reponse = $bdd->prepare("SELECT id_dossier, type_sortie, date_incident, no_train,    commentaire FROM sortie_prevue
        UNION 
        SELECT id_dossier, type_sortie, date_incident, no_train, commentaire FROM sortie_non_prevue
        ORDER BY date_incident DESC LIMIT limit=:limit")

$reponse -> execute(array('limit'=> $resultatsParPage));

while ($donnees = $reponse->fetch())
{

/* i display the results here, they display fine with a 'static' SQL query, but nothing shows up with my query at the moment.. */

}

</body>
</html>

非常感谢你的帮助!我相信这有一个简单的解释! :)

1 个答案:

答案 0 :(得分:0)

奇怪的是,这似乎有用...... 我直接执行查询,没有任何准备。

$reponse = $bdd->query("SELECT id_dossier, type_sortie, date_incident, no_train, commentaire FROM sortie_prevue
        UNION 
        SELECT id_dossier, type_sortie, date_incident, no_train, commentaire FROM sortie_non_prevue
        ORDER BY date_incident DESC LIMIT $resultatsParPage");

如果有人发表评论来解释这一点,他将非常欢迎!