将辅助WHERE语句添加到PDO / MySql语句

时间:2013-09-25 17:32:34

标签: php mysql pdo

我有一个PDO / MySQL数据库连接。我的数据库包含各种登录页面的内容。要查看这些目标网页,请输入 * localhost / landing_page_wireframe.php * 并附加 ?lps = X (其中X代表Thread_Segment)在浏览器中显示特定页面。我现在进入这些页面的第二次迭代,需要添加一个辅助分类器来跟随“Thread_Segment”来区分我试图提取的版本。这是我当前工作查询的片段。

   <?php
    $result = "SELECT * FROM landing_page WHERE Thread_Segment = :lps";
    $stmt = $connection->prepare($result);
    $stmt->bindParam(':lps', $_GET['lps']);
    $stmt->execute();
    $thread = "";
    $threadSegment = "";
    $version = "";
    $categoryAssociation = "";
    while($row = $stmt->fetch()) {
        $thread = $row["Thread"];
        $threadSegment = $row["Thread_Segment"];
        $version = $row["Version"];
        $categoryAssociation = $row["Category_Association"];
    }
?>

所以我现在需要更改它以在辅助分类器中添加以区分版本。我想我的查询会变成这样的东西:

$result = "SELECT * FROM landing_page WHERE Thread_Segment = :lps AND Version = :vrsn";

如果到目前为止这是正确的,那么我开始迷失的地方是以下PHP代码。

    $stmt = $connection->prepare($result);
    $stmt->bindParam(':lps', $_GET['lps']);
    $stmt->execute();

我想我需要在我的php中包含一些二次迭代来与二级分类器交谈,但不完全确定如何去做,然后我会想象我的网址附件会来自 ?lps = X 类似 ?lps = X&amp; vrsn = Y (Y代表版本)。

我应该声明我对PHP / MySql有些新手,所以这里的答案可能很简单,甚至可能都不可能。也许我甚至没有以正确的方式解决这个问题。认为你们所有人都可以为我提供一些见解,或指导我对此事进行研究。感谢并为任何不正确的术语道歉,因为我对这些技术肯定是新手。

2 个答案:

答案 0 :(得分:1)

网址更改如您所述。只需添加另一个bindParam调用即可使用该参数:

$stmt = $connection->prepare($result);
$stmt->bindParam(':lps', $_GET['lps']);
$stmt->bindParam(':vrsn', $_GET['vrsn']);
$stmt->execute();

答案 1 :(得分:1)

添加另一个bindParam()应该可以在这里工作。

$stmt = $connection->prepare($result);
$stmt->bindParam(':lps', $_GET['lps']);
$stmt->bindParam(':vrsn', $_GET['vrsn']);
$stmt->execute();

您可以通过?lps=X&vrsn=Y访问它,但作为警告,如果未请求$_GET参数,则查询将失败。我建议在通过查询发送之前将其默认为某些内容:

$stmt = $connection->prepare($result);

$lps = isset($_GET['lps']) ? $_GET['lps'] : 'default lps value';
$vrsn = isset($_GET['vrsn ']) ? $_GET['vrsn '] : 'default vrsn value';
$stmt->bindParam(':lps', $lps);
$stmt->bindParam(':vrsn', $vrsn);

$stmt->execute();