我使用urldecode
从以前的网站接收成员(member)ID。 URL 中显示了正确的 ID,但我无法从数据库中获取信息。
成员.php:
<?php
$query = "SELECT name, memberID FROM members";
if(!$result = $db->query($query)){
die('There was an error running your query[' . $db->error . ']');
}
while($row = $result->fetch_assoc()){
printf ('<li><a href="profiles.php?memberID=' . urlencode($row['memberID']) . '">' . $row['name'] . '</a></li>');
}
?>
配置文件.php:
<?php
$id = isset($_GET['memberID']);
$query = "SELECT * FROM members WHERE memberID = '".$id."'";
if ($result = $db->query($query)) {
while ($row = $result->fetch_assoc()){
printf("%s (%s)\n", $row["memberID"], $row['name']);
}
}
var_dump($query);
?>
我得到的只是一个空白屏幕。
最佳答案
我在代码中发现了几个问题:
members.php
while($row = $result->fetch_assoc()){
printf ('<li><a href="profiles.php?memberID=' . urlencode($row['memberID']) . '">' . $row['name'] . '</a></li>');
}
这里您使用的是printf
函数,它的第一个参数是字符串的格式。
使用 echo
语句更正该错误,如下所示:
while($row = $result->fetch_assoc()){
echo '<li><a href="profiles.php?memberID=' . urlencode($row['memberID']) . '">' . $row['name'] . '</a></li>';
}
profiles.php
$id = isset($_GET['memberID']);
此处您将使用 isset() 函数返回值设置 $id
。
您应该改为从 GET 参数设置值,如下所示:
if(isset($_GET['memberID'])) $id = $_GET['memberID'];
现在看看它是否有效。
关于php - 无法使用 urldecode 从数据库获取信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14743175/