将输入数据与从数据库查询的数据进行比较

时间:2018-12-23 07:43:41

标签: php mysql mysqli

因此,当我尝试在数据库中随机获取一行并将其存储到变量中时,似乎无法像在这些行中尝试的那样将这些变量用于下一个sql查询。

首先,我在数据库中获得一个随机行,并将其存储到变量中以供以后使用

$mysqli = new mysqli($hostname, $username, $password, $dbname, $port) or die(mysqli_error($mysqli));
$sqlcompare = "SELECT * FROM questions order by rand() limit 1";
$result = mysqli_query($mysqli, $sqlcompare);
$row = mysqli_fetch_row($result);
$pos = $row[0];
$word = $row[1];

$pos是该行的ID,$word是该行的数据。

然后我得到用户输入,并检查数据库是否存在与$pos相同的行,并且输入的单词与该行相同

$input = $mysqli->real_escape_string($_POST['input']);  
$sqlcheck = "SELECT * FROM questions WHERE word = $input AND id = $pos";
$sqlresult = mysqli_query($mysqli, $sqlcheck);
if (isset($_POST['compare'])) {
    if (mysqli_num_rows($sqlresult)>=1) {
        echo "Found that input";
    } else {
        echo "Not found";
    }
}

当我尝试直接从仅具有一个条件的用户输入中检索数据库中的单词时,代码运行正常,但是当我添加id条件时,它不再起作用。知道我在哪里搞砸了吗?

编辑说明:我只是尝试回显$pos$word,并且它工作正常,但是以某种方式,当我尝试将$pos varibale放入sql进行查询时,它不起作用。 / p>

1 个答案:

答案 0 :(得分:4)

使用like代替(=)。

[ENTER]

Mysql Like docs