因此,当我试图在数据库中随机获取一行并将其存储到变量中时,似乎不能在下一个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";
}
}当我尝试从数据库中直接从只有一个条件的用户输入中检索单词时,代码工作得很好,但当我添加id条件时,它就不再工作了。你知道我哪里搞砸了吗?
编辑注释:我只是尝试回显$pos和$word,它工作得很好,但不知何故,当我试图将$pos变量放入sql中进行查询时,它不能工作。
发布于 2018-12-23 16:58:37
使用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 Like docs
https://stackoverflow.com/questions/53902011
复制相似问题