Php 如何使用?在URL中?
我试图找到一种方法,让一个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
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可能会更安全一点。