PHP不检索MySQL结果

时间:2013-10-23 00:24:39

标签: php mysql

我正在尝试从MySQL数据库中检索列“v162”和“v164”的值。它连接得很好,但不会从两列中检索信息。

我想要检索的列的行(与标题匹配的列)都是TINYINT(1)值,如下所示:

v162 = 1

v164 = 0

这是我目前的代码:

$mysqli = mysqli_connect($host, $user, $pass, $database);

$query = "SELECT * FROM search WHERE title = '$title'";

if ($result = $mysqli->query($query)) {
    $i = 0;
    while ($row = $result->fetch_row()) {
        if ($row["v162"] == '1') {
           echo '<div id="162link' . $i . '">1.6.2</div>'; 
        }
        if ($row["v164"] == '1') {
           echo '<div id="164link' . $i . '">1.6.4</div>';
        }
      $i++;
    }

    $result->free();
}

$mysqli->close();

我之前已经要求更正代码,这有一些更严重的错误,现在我只需要实际成功检索数据。

2 个答案:

答案 0 :(得分:1)

如果您的查询由于错误而失败,则您的脚本将不执行任何操作,但您将看不到错误。如果找不到匹配项,那么您的脚本将无法执行任何操作。添加一些代码来检查查询的返回值。

尝试

$result = $mysqli->query($query) or die($mysqli->error());  // Quit with error if query fails.

if ($result->num_rows == 0) {   // Display something informative if nothing is found.
   echo '<div>No matches found</div>'; 
} else {   
    $i = 0;
    while ($row = $result->fetch_row()) {
        if ($row["v162"] == '1') {
           echo '<div id="162link' . $i . '">1.6.2</div>'; 
        }
        if ($row["v164"] == '1') {
           echo '<div id="164link' . $i . '">1.6.4</div>';
        }
      $i++;
    }

    $result->free();
}

答案 1 :(得分:0)

如果您正在做的事情对您不起作用,请查看文档。

Here's一个如何初始化连接的示例。

       
  • 如果你说它有效就没关系,你必须要110%肯定。

Here's如何使用mysqli选择数据的示例。

       
  • 你这样做的方式与文档不同;提示您可能做错了
  •    
  • 你实际上并没有检查是否有任何东西被取出;使用手头的信息来帮助你。

如果您完全按照文档声明的那样做,但仍然遇到问题(并且您实际上已经在连接周围包装了一个异常处理程序),那么请回到我们这里。