mysqli查询返回没有结果

时间:2013-05-17 16:21:09

标签: php mysqli

我是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。

这里非常感谢任何帮助。谢谢!

3 个答案:

答案 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警告,因为此对象成员尚未定义。