1

我有一个 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 中包含一些二次迭代来与二级分类器对话,但不完全确定如何去做,然后我会想象我的 url 附件会从?lps=X变成这样的东西?lps=X&vrsn=Y(Y代表版本)。

我应该声明我对 PHP/MySql 有点陌生,所以这里的答案可能很简单,或者甚至不可能。也许我什至没有以正确的方式解决这个问题。以为你们都可以为我提供一些见解或方向,以将我对此事的研究转向。感谢并为任何不当的术语道歉,因为我对这些技术绝对是新手。

4

2 回答 2

1

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

$stmt = $connection->prepare($result);
$stmt->bindParam(':lps', $_GET['lps']);
$stmt->bindParam(':vrsn', $_GET['vrsn']);
$stmt->execute();
于 2013-09-25T17:40:28.807 回答
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();
于 2013-09-25T17:40:55.503 回答