-1

我正在尝试从 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();

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

4

2 回答 2

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();
}
于 2013-10-23T00:39:09.117 回答
0

如果您所做的对您不起作用,请查看文档。

这是一个如何初始化连接的示例。

  • 不管你说它有效,你必须 110% 确定。

这是一个如何使用 mysqli 选择数据的示例。

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

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

于 2013-10-23T00:39:26.827 回答