首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将输入数据与从数据库查询的数据进行比较

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

Stack Overflow用户
提问于 2018-12-23 15:43:41
回答 1查看 78关注 0票数 1

因此,当我试图在数据库中随机获取一行并将其存储到变量中时,似乎不能在下一个sql查询中重用这些变量,因为我在这些行中尝试过。

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

代码语言:javascript
复制
$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,并且输入的单词与该行相同

代码语言:javascript
复制
$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中进行查询时,它不能工作。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-23 16:58:37

使用like而不是(= )。

代码语言:javascript
复制
$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

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53902011

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档