将mysql查询结果集显示为表

时间:2012-01-03 16:02:53

标签: php mysql pdo

我想在我的网页上将查询结果集显示为表格。该查询不会导致任何错误,但脚本不会产生任何输出。

我在数据库(玩家)中有一个表。该表有3行(id,firstname,lastname)。

Script source code

<!DOCTYPE html>
<html>
  <head>
    <title>View Records</title>
  </head>
  <body>
    <h1>View Records</h1>

    <?php
    error_reporting(E_ALL); 
    ini_set('display_errors','1');

    $db = new PDO('mysql:host=localhost;dbname=records2', 'root', '');
    $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $players = $db->query('SELECT * FROM players');

    echo "<table border='1' cellpadding='10>";
    echo "<tr><th>ID</th><th>First name</th><th>Last name</th></tr>";

    foreach($players->fetchAll() as $row){
        echo "<tr>";
        echo "<td>".$row['id']."</td>";
        echo "<td>".$row['firstname']. "</td>";
        echo "<td>".$row['lastname']."</td>";
        echo "</tr>";
    }
    $player->closeCursor();

    echo "</table>";
    ?>      
  </body>
</html>

我的数据库:

CREATE TABLE IF NOT EXISTS `players` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `firstname` varchar(32) CHARACTER SET utf8 COLLATE utf8_polish_ci NOT NULL,
  `lastname` varchar(32) CHARACTER SET utf8 COLLATE utf8_polish_ci NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;

3 个答案:

答案 0 :(得分:1)

您必须向PDO询问以下错误消息:

print_r($dbh->errorInfo());

请参阅:http://php.net/manual/en/pdo.errorinfo.php

答案 1 :(得分:1)

问候user1050014和其他人。我能够复制您使用此脚本遇到的问题。我修改了脚本以在我的机器上使用数据库。该脚本按预期执行。对我来说,一个变化就是在[cellpadding =&#39; 10&#39;]之后放回去。这是一个诚实的错字。这应该可以纠正你的问题。

// your original line from your script
echo "<table border='1' cellpadding='10>";

您对$ player-&gt; closeCursor()的调用中也有拼写错误; (应该是$玩家)。我希望这对其他人有帮助。

答案 2 :(得分:0)

你在这里错过了一个撇号

echo "<table border='1' cellpadding='10>";

校正:

echo "<table border='1' cellpadding='10'>";