Php 如何使用?在URL中?

Php 如何使用?在URL中?,php,mysql,Php,Mysql,我试图找到一种方法,让一个PHP页面显示我所有的博客文章,但让URL决定从该数据库请求什么文章。类似这样的东西:localhost/bolg/posts.php?pid=1在我的数据库中,我将其设置为每个post都有一个与其关联的ID。所以我想要的是将pid=1放入MySQL代码中。下面是post.PHP的PHP代码 <?php $servername = "localhost"; $username = "root"; $password = &q

我试图找到一种方法,让一个PHP页面显示我所有的博客文章,但让URL决定从该数据库请求什么文章。类似这样的东西:
localhost/bolg/posts.php?pid=1
在我的数据库中,我将其设置为每个post都有一个与其关联的ID。所以我想要的是将pid=1放入MySQL代码中。下面是post.PHP的PHP代码

<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "test";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

$sql = "SELECT id, title, content, date FROM posts where id =3";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    // output data of each row
    while($row = $result->fetch_assoc()) {
        echo "<h1> ". $row["title"]. "</h1>". $row["content"]. "" . $row["date"] . "<br>";
    }
} else {
    echo "0 results";
}

$conn->close();
?>

假设您在浏览器地址栏中输入
example.com?pid=10
,您可以使用
$\u GET
()数组捕获变量
pid
,当使用查询字符串调用页面时,PHP会自动填充该数组

使用现有代码作为起点,您可以

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "test";

if (isset($_GET['pid'])) {
    // Create connection
    $conn = new mysqli($servername, $username, $password, $dbname);
    
    $sql = "SELECT id, title, content, date FROM posts where id = ?";
    $stmt = $conn->prepare($sql);
    $stmt->bind_param('i', $_GET['pid']);
    $stmt->execute();

    $result = $stmt->get_result();

    if ($result->num_rows > 0) {
        // output data of each row
        // while looop is not necessary, you are only returning one row
        $row = $result->fetch_assoc();
        echo "<h1> ". $row["title"]. "</h1>". $row["content"]. "" . $row["date"] . "<br>";
    }
    $conn->close();
} else {
    echo "0 results";
}

那么最后你想要什么呢?我希望能够有一个php页面,但url中有localhost/blog/post.php?pid=1这样的代码,并从数据库中获取id为1的博客文章。让pid=2抓住id为的帖子2@RiggsFolly什么,先生?当然,关于pararemized查询的好观点是,但是,不应该将$\u GET['pid']
绑定为INT?如果未设置$\u GET['pid'],则$conn是未定义的,只是saying@LawrenceCherone很好。我从来没有这么麻烦过,所以忘了检查那个位:)@biesior,所以我一直认为,但显然,我测试了它,它不能给你一点什么使用:)但我会修复它无论如何,感谢汉克斯的修复,实际上两者都会工作,但使用integer可能会更安全一点。