0

我正在使用 PHP 访问 MYSQL 数据库,我需要从表中提取数据。问题是只有一个字段可以获取。

 $mysqli = new mysqli($hostname, $username, $password, $db_name);

        // Output error info if there was a connection problem
        if ($mysqli->connect_errno)
            die("Failed to connect to MySQL: ($mysqli->connect_errno) $mysqli->connect_error");

        $db = "SELECT username1 FROM Friends WHERE username2 = '"."$username"."' UNION SELECT username2 FROM Friends WHERE username1 = '"."$username"."'";

        $result = $mysqli->query($db) or
            die ("Wasn't able to search the database");

        while($result->fetch_field($row))
        {
            echo "<h1> $row </h1>";
        }

我保证我已连接到我的数据库。我还在括号中使用了 $result->fetch_field() 而不是 $row。我的主要问题是 fetch_field 返回一个对象,但在所有 PHP 手册中,他们没有说明如何提取该字段的实际值。

4

3 回答 3

1

您确定$username查询中的变量是您期望的吗?您SELECT可能正在返回0行。

您在代码中使用$username了两次。
首先在你的mysqli-

$mysqli = new mysqli($hostname, $username, $password, $db_name);
                                --------- 

再次在你的SELECT-

$db = "SELECT username1 FROM Friends WHERE username2 = '"."$username"."' UNION SELECT username2 FROM Friends WHERE username1 = '"."$username"."'";
                                                           ---------                                                               ---------

尝试添加

if ($result->num_rows > 0){
  while ($row = $result->fetch_row()) {
  echo "<h1>".$row[0]."</h1>";}
}
else {echo "No Query / Returned 0 Rows";}
于 2012-11-24T03:23:55.123 回答
0
while ($obj = $result->fetch_object()) {
    echo "<h1>".$obj->username1."</h1>";
}

*mysqli_fetch_object() 将当前行结果集作为对象返回,其中对象的属性表示在结果集中找到的字段的名称。*

没有 fetch_value($table, $column, $where) 函数有点生气

于 2012-11-24T03:06:32.113 回答
0

尝试从结果中获取一个数组,如下所示:

while($row = fetch_assoc($result))
    {
        echo "<h1> $row['username1'].''.$row['username2'] </h1>";
    }

我假设所有记录都有 username1 和 username2 NOT NULL 并并排显示它们(例如名字和姓氏)。

于 2012-11-24T03:17:19.290 回答