PHP、MYSQL和超链接-从一个页面链接到一个详细页面(同一个表)
不知道为什么这个页面似乎不起作用 尝试从URL获取ID并使用该ID筛选表 示例URL: 即使我知道存在匹配项,但当我键入该URL时,仍将得到0个结果。有什么想法吗PHP、MYSQL和超链接-从一个页面链接到一个详细页面(同一个表),php,mysql,hyperlink,Php,Mysql,Hyperlink,不知道为什么这个页面似乎不起作用 尝试从URL获取ID并使用该ID筛选表 示例URL: 即使我知道存在匹配项,但当我键入该URL时,仍将得到0个结果。有什么想法吗 <html> <head> <style>table, th, td {border: 1px solid black;}</style> </head> <?php $id = $_GET["id"]; $servername = "INSERTSERVER";
<html>
<head>
<style>table, th, td {border: 1px solid black;}</style>
</head>
<?php
$id = $_GET["id"];
$servername = "INSERTSERVER";
$username = "INSERTUSER";
$password = "INSERTPASSWORD";
$dbname = "INSERTDB";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$pd = "
SELECT fac_id, pd, phone_pd
FROM ft_location_db
WHERE fac_id = $id
";
$result = $conn->query($pd);
if ($result->num_rows > 0) {
echo "<table cellpadding=5 bgcolor=#FFFFFF><tr><th>PD</th><th>Phone</th>
</tr>";
// output data of each row
while($row = $result->fetch_assoc()) {
echo "<tr><td>" . $row["pd"]. "</td><td>" . $row["phone_pd"]. "</td>
</tr>";
}
echo "</table>";
} else {
echo "0 results";
}
$conn->close();
?>
</body>
</html>
表,th,td{边框:1px纯黑色;}
请参见答案底部的注释
如果fac_id
是字符串数据类型,则应将其包装
$pd = "
SELECT fac_id, pd, phone_pd
FROM ft_location_db
WHERE fac_id = '$id'
";
您必须使用单引号,因为您的查询写在双引号内
使用单引号:
$pd = '
SELECT fac_id, pd, phone_pd
FROM ft_location_db
WHERE fac_id = "' . $id . '"
';
但是(而且非常重要),我建议您查看以确保查询的安全
$stmt = $conn->prepare('
SELECT fac_id, pd, phone_pd
FROM ft_location_db
WHERE fac_id = ?');
$stmt->bind_param('s', $id);
$stmt->execute();
$result = $stmt->get_result();
另请参见:如果标识符是
123G
,fac_id
列似乎是字符串数据类型,对吗?是的,这有问题吗?这是独一无二的。事实上,我发现了这一点。其中fac_id=$id必须是其中的fac_id='$id'对于SQL和PHP来说是非常新的。“和”的处理方式是什么?我似乎认为写东西的方式不同?”因为变量不是在单引号字符串中解释的。“-嗯?你说得有点对,但我上面引用你的话需要编辑或删除。这容易受到sql注入的攻击吗?”?我以为作为一个准备好的声明我没事??谢谢@FunkFortyNiner我已经删除了这句话。这可能是我翻译的错误。但我不知道我犯了什么错。你能告诉我吗?非常感谢。@Talsma是的,它很脆弱。尽快使用准备好的报表:)