0

在过去的一个小时里,我尝试想办法让服务器识别用户是否已经在我的 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 的 mysql 行进行比较WHEN sid=$_SESSION['id']

4

1 回答 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从您的GET参数中获取的,因此您需要先清理它,以防止 SQL 注入。

于 2013-04-25T17:01:17.487 回答