我正在使用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的所有手册中,他们没有说明如何提取该字段的实际值。
答案 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并且并排显示(例如名字和姓氏)。