无法从表中检索所有行

问题描述 投票:0回答:1

我在过去的一个小时里尝试找到一种方法让服务器识别用户是否已经在我的 MySQL 数据库中拥有类似的行

你们有人可以帮助我吗?

这是我现在完成的代码

$nummer = $_GET['a'];
$klasse = strtoupper ( $_GET['b'] );

$kid = $nummer . '.' . $klasse;

$result = $db->query("SELECT kid FROM Kcode WHERE sid='".$_SESSION['id']."'");
$resa = $result->fetch();

$b = strtoupper ( $resa['kid'] );
$a = $kid
$c = $_SESSION['id'];



if ($a !== $b){
echo "insert";
} else {
echo "already exists";
}

可以更深入地解释不同的 get 命令是什么:

  • $_GET['a']
    =从上一页检索到的一封信
  • $_GET['b']
    =从上一页检索到的数字
我想要选择的

“孩子”是我的 Kcode 表中的一行,问题是我想与几个孩子进行比较

$a
...但是当我尝试这种方式时,它只检索最后创建的。

感谢您的宝贵时间

编辑: 正如评论中所说,我想将

$kid
与名为 Kid
WHEN sid=$_SESSION['id']
的 MySQL 行进行比较。

php mysql web fetch
1个回答
0
投票

如果要检索多行,则需要将

fetch
放入循环中:

$exists = false;

while($resa = $result->fetch()) {

    $b = strtoupper ( $resa['kid'] );
    $a = $kid
    $c = $_SESSION['id'];

    if ($a !== $b){
        //echo "insert";
    } else {
        $exists = true;
        //echo "already exists";
    }
}


if($exists){
{
    echo "already exists";
} else {
    echo "insert";
}

这就是你想要做的吗?

现在,如果您想做的只是查看行是否存在,则应该修改您的查询:

$result = $db->query("SELECT kid FROM Kcode WHERE sid='".$_SESSION['id']."' 
                      AND kid='$kid'");

既然你从你那里获取

$kid
参数,你需要先清理它,以防止SQL注入。
    

© www.soinside.com 2019 - 2024. All rights reserved.