繁体   English   中英

mysqli_conn-> query…放入for循环时不给出任何结果

[英]mysqli_conn->query… is not giving any results when put inside for loop

我无法从代码中显示的for循环中包含的“ $ mysqli_conn-> query”语句中获取结果。 我使用for循环的原因很简单,可以从代码本身进行判断。

$name=$_SESSION["names"];
$size=sizeof($name);
for($i=0; $i<$size; $i++) { 
    //echo $name[$i]; //for testing
    $bname = $name[$i];
    $results = $mysqli_conn->query("SELECT product_name, product_code FROM products_list WHERE product_name='$bname'");
       if ($row = $results->fetch_assoc()) {
          echo $row["product_name"]."<br>";
        }
        else echo "I am Going Wrong way !!</br>";
}

我得到的输出是:“我走错路了!” 我还检查了$ _SESSION [“ names”]的内容。 除了结果,一切似乎都是正确的。

您只是假设查询永远不会失败,这是非常糟糕的事情。 您容易受到sql注入攻击的攻击 您还只是假设您的查询将始终返回结果。 如果没有可用的行,则fetch存将返回false,然后将其视为“错误的方式”。

至少,您应该具有如下结构:

for(...) {
    $results = $mysqli_conn->query($sql);
    if (!$results) {
       die($mysqli_conn->error());
    }
    if ($results->num_rows != 0) {
          $row = $results->fetch_assoc();
    } else {
         echo 'no results';
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM