我是mysqli的新手,我正在尝试将一个简单的查询输出到HTML表中。 我得到了三个空白单元格,但没有任何内容。
我试着在这里找到这个,也许我的搜索技能达不到标准,所以要么没有其他人被困在这里,要么我不能搜索下蹲! 无论如何,这是我的代码:
<?php
$mysqli = new mysqli("localhost", "webuser", "mysecretpassword", "userdb");
/* check connection */
if ($mysqli->connect_errno)
{
printf("Connect failed: %s\n", $mysqli->connect_error);
exit();
}
/* Select queries return a resultset */
if ( $result = $mysqli->query("select first_name, last_name, last_activity_date from users order by first_name" ) )
{
$finfo = $result->fetch_fields();
foreach ( $finfo as $val )
{
echo "<tr>\n";
echo "<td>$val->first_name</td>\n";
echo "<td>$val->last_name</td>\n";
echo "<td>$val->last_activity_date</td>\n";
echo "</tr>\n";
}
$result->close();
}
$mysqli->close();
?>
虽然我已经看过使用printf()的其他示例,但我不熟悉它的语法,因为我以前在旧的数据库事务中使用了echo样式,因此我不习惯使用C样式printf。
这里非常感谢任何帮助。谢谢!
答案 0 :(得分:2)
试试这个
foreach ( $finfo as $val )
{
echo "<tr>\n";
echo "<td>" . $val->first_name . "</td>\n";
echo "<td>" . $val->last_name . "</td>\n";
echo "<td>" . $val->last_activity_date . "</td>\n";
echo "</tr>\n";
}
答案 1 :(得分:2)
if ( $result = $mysqli->query("select first_name, last_name, last_activity_date from worker order by first_name" ) )
{
while ( $val = $result->fetch_object() )
{
echo "<tr>\n";
echo "<td>" . $val->first_name . "</td>\n";
echo "<td>" . $val->last_name . "</td>\n";
echo "<td>" . $val->last_activity_date . "</td>\n";
echo "</tr>\n";
}
$result->close();
}
答案 2 :(得分:0)
它不是关于foreach或while循环,fetch_fields不会返回查询结果,而是返回有关查询结果列的元数据(例如名称,长度,类型等)
您也应该在$val->first_name
上收到PHP警告,因为此对象成员尚未定义。