mysql_fetch_array在zend框架中不起作用

时间:2011-11-24 06:28:52

标签: php zend-framework

这是我到目前为止的代码: -

$db = $this->getInvokeArg('bootstrap')->getPluginResource('db')->getDbAdapter();
$sql = "select * from users";
$result = $db->fetchAll($sql);

echo "<table border='1'>
    <tr>
    <th>ID</th>
    <th>Firstname</th>
    <th>Lastname</th>
    <th>Email</th>
    <th>Username</th>
    <th>Password</th>
    </tr>
";

while($row = mysql_fetch_array($result)){
    echo "<tr>";
    echo "<td>" . $row['id'] . "</td>";
    echo "<td>" . $row['firstname'] . "</td>";
    echo "<td>" . $row['lastname'] . "</td>";
    echo "<td>" . $row['email'] . "</td>";
    echo "<td>" . $row['username'] . "</td>";
    echo "<td>" . $row['password'] . "</td>";
    echo "</tr>";
  }
echo "</table>";

我正在尝试这个,但我收到了这个错误: -

Warning: mysql_fetch_array() expects parameter 1 to be resource, array given in /var/www/datashow/application/controllers/IndexController.php on line 35 

3 个答案:

答案 0 :(得分:5)

Zend_Db不返回mysql结果对象。在使用Zend_Db抽象层时,您不会使用MySQL的函数;你使用Zend的功能。在这种情况下,findAll已经将数据作为数组返回。

答案 1 :(得分:0)

@root:

您已使用$result = $db->fetchAll($sql);提取结果 那你为什么用while($row = mysql_fetch_array($result))

我建议您先使用print_r($result)检查$ result变量中的数据。 那么你可以使用foreach或其他一些有效的循环来回显这些值。

foreach($result as  $resultItems){ // echo value in $resultItems}

答案 2 :(得分:0)

foreach($result as $row){
    echo "<tr>";
    echo "<td>" . $row['id'] . "</td>";
    echo "<td>" . $row['firstname'] . "</td>";
    echo "<td>" . $row['lastname'] . "</td>";
    echo "<td>" . $row['email'] . "</td>";
    echo "<td>" . $row['username'] . "</td>";
    echo "<td>" . $row['password'] . "</td>";
    echo "</tr>";
  }