PHP用于MYSQL中的单个字段

时间:2012-11-24 02:58:24

标签: php mysql mysqli

我正在使用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-&gt; fetch_field()而不是$ row。我的主要问题是fetch_field返回一个对象,但在PHP的所有手册中,他们没有说明如何提取该字段的实际值。

3 个答案:

答案 0 :(得分: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";}

答案 1 :(得分:0)

while ($obj = $result->fetch_object()) {
    echo "<h1>".$obj->username1."</h1>";
}

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

有点疯狂,没有fetch_value($ table,$ column,$ where)函数

答案 2 :(得分:0)

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

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

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