当放入for循环时,mysqli_conn-> query ...没有给出任何结果

时间:2015-08-04 14:35:41

标签: php mysql

我无法从" $ mysqli_conn->查询中得到结果"如代码中所示,包含在for循环中的语句。我使用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>";
}

我得到的输出是:&#34;我走错路了!&#34; 我还检查了$ _SESSION [&#34;名称&#34;]的内容。除结果外,一切似乎都是正确的。

1 个答案:

答案 0 :(得分:0)

您只是假设您的查询永远不会失败,这是一件非常糟糕的事情。您很容易受到sql injection attacks的攻击。你也只是假设你的查询总是会返回一个结果。如果没有可用的行,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';
    }
}