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

xkrw2x1b  于 2021-06-15  发布在  Mysql
关注(0)|答案(1)|浏览(381)

所以,当我尝试在数据库中获取一个随机行并将其存储到变量中时,似乎无法在下一个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` 是该行的数据。
然后我获取用户输入,并检查数据库中是否有两个具有相同id的行 `$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";
}
}

当我试图直接从用户输入中检索word时(只有一个条件),代码工作得很好,但是当我添加id条件时,它就不再工作了。你知道我把事情搞砸了吗?
编辑注:我只是想回音 `$pos` 以及 `$word` 它工作得很好,但是当我试着 `$pos` 变为sql查询,它不工作。
lyfkaqu1

lyfkaqu11#

用like代替(=)。

$input = $mysqli->real_escape_string($_POST['input']);  
$sqlcheck = "SELECT * FROM questions WHERE word LIKE '%".$input."%' AND id = $pos";
$sqlresult = mysqli_query($mysqli, $sqlcheck);

mysql类文档

相关问题