Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Can';t使用urldecode从数据库获取信息_Php_Mysql_Urldecode - Fatal编程技术网

Php Can';t使用urldecode从数据库获取信息

Php Can';t使用urldecode从数据库获取信息,php,mysql,urldecode,Php,Mysql,Urldecode,我使用urldecode从以前的站点接收成员ID。URL中显示了正确的ID,但我无法从数据库中获取信息 members.php: <?php $query = "SELECT name, memberID FROM members"; if(!$result = $db->query($query)){ die('There was an error running your query[' . $db->error . ']'); } while($ro

我使用
urldecode
从以前的站点接收成员ID。URL中显示了正确的ID,但我无法从数据库中获取信息

members.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>');

}
?>

profiles.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);
?>

memberID是数据库中的int字段还是字符串字段?如果是int字段,则删除profiles.php查询中的单引号。

确保使用正确的
memberId
memberId
大小写。这是非常重要的


不要通过
urldecode
传递从GET/POST检索到的值

我在代码中发现了几个问题:

members.php

while($row = $result->fetch_assoc()){
  printf ('<li><a href="profiles.php?memberID=' . urlencode($row['memberID']) . '">' . $row['name'] . '</a></li>');

}
$id = isset($_GET['memberID']);
profiles.php

while($row = $result->fetch_assoc()){
  printf ('<li><a href="profiles.php?memberID=' . urlencode($row['memberID']) . '">' . $row['name'] . '</a></li>');

}
$id = isset($_GET['memberID']);
在这里,您可以使用isset()函数返回值设置
$id
。 您应该改为按如下方式设置GET参数的值:

while($row = $result->fetch_assoc()){
  echo '<li><a href="profiles.php?memberID=' . urlencode($row['memberID']) . '">' . $row['name'] . '</a></li>';

}
if(isset($_GET['memberID']))    $id = $_GET['memberID'];

现在查看它是否工作。

请根据您的代码尝试以下操作,并告知结果:

<?php
$id = isset($_GET['memberID']) ? $_GET['memberID'] : 0;
if($id > 0){
    $query = "SELECT * FROM members WHERE memberID = '".$id."'";
    $result = $db->query($query);
    if($result){
        echo "Rows found: " + $result->num_rows;
    } else {
        echo "No rows found";
    }
} else {
    echo "memberID is 0";
}
?>

profiles.php中的var\u dump($query)
,然后执行。profiles.php中的
echo$query
的结果是什么?
memberID
!=
memberId
@OneTrickPony将此作为答案发布。我通过Ctrl键查找变量的输入错误,但它忽略了大小写@萨克伦。您必须使用IE。Opera有一个匹配大小写的选项:)谢谢:)。所以它应该是
$id=$\u GET['memberID']
?@PAHemingstam通常更喜欢使用
$id=isset($\u GET['memberID'])?修剪($\u GET['memberID']):null
。您没有启用
magic\u quotes\u gpc
是吗?
array(1){[“memberId”]=>string(1)“2”}
有趣。从我所能看到的,我把它拼写成了现在代码中的
memberID
,这是我的错误。它说,
array(1){[“memberID”]=>string(1)“2”}
MySQL将在必要时自动将字符串转换为整数,这个答案是错误的。请将这个(如php.net/manual/en/function.ini set.php所示)放在页面的开头,并告诉我们是否有新的显示:ini_set('display_errors',1');或者在每个变量之后和while循环之后放置一个echo语句,然后查看显示了多少echo语句。它表示
1(成员名称)