执行 mysqli_query 有效,但它不返回 WHERE CLAUSE 中给出的确切行

Posted

技术标签:

【中文标题】执行 mysqli_query 有效,但它不返回 WHERE CLAUSE 中给出的确切行【英文标题】:Executing mysqli_query works but it does not return exact row given in WHERE CLAUSE 【发布时间】:2019-03-25 12:29:30 【问题描述】:

查询执行.. 但是假设用户更改了 $_GET['sub'] 的值以获取不在数据库中的 id,例如:60。 它应该打印“未找到”而不是打印找到!这是为什么呢?

 $main = new  MainClass();

 $subid = mysqli_real_escape_string($main->MsqlConRes,$_GET['sub']);

if (is_numeric($subid))

    $main->query = mysqli_query($main->MsqlConRes,"SELECT * FROM subjects WHERE id = ".$subid."") or die(mysqli_error());
    if ($main->query)
    
        echo'Found';
    
    else
        echo'Not Found !';

else
    $main->errors(404);

【问题讨论】:

user edited the $_GET['sub'] -> 基本上这意味着用户编辑预先存在的记录 我的意思是来自 URL 的子值!示例:index.php?sub=id 【参考方案1】:

if 中使用mysqli_num_row()

if (mysqli_num_row($main->query)>0)
    
        echo'Found';
    
    else
        echo'Not Found !';

由于查询正确执行,所以if ($main->query) 将始终为真

【讨论】:

谢谢你成功了!我正在寻找的那个功能!

以上是关于执行 mysqli_query 有效,但它不返回 WHERE CLAUSE 中给出的确切行的主要内容,如果未能解决你的问题,请参考以下文章

让mysqli_query执行时出现问题[重复]

高级自定义字段 the_sub_field()['url'] 但它不返回 URL

我需要使用相同的 JS 代码,但它不起作用

php问题,搞了好几天,$result=mysqli_query($link,$sql); $result的值一直返回假,求帮助,快要疯掉了

PHP小知识总结

试图在每 1 分钟后执行一项工作,但它不起作用?