使用php / pdo在网站上显示sql数据,没有运气

时间:2013-06-19 17:27:59

标签: php sql pdo

我知道这可能很简单,但过去几天我搜索了几个小时,我准备跳出我的一层楼。

  1. 有一个基本的测试网站,除了打开/关闭html标签之外什么都没有。
  2. 数据库中的一个非常基本的表,使用phpmyadmin来访问它。
  3. 尝试将表格内容显示在基本网站上。
  4. 在php中使用mysqli_或mysql_样式来访问数据一段时间没有运气..从那以后一直在阅读有关PDO的文章,并找到了许多关于如何使用它的教程。我觉得我想要做的事情应该是这么简单,但我已经尝试将我在本网站和其他教程中找到的内容复制到T,但网站仍然没有显示数据。

    try {
        $conn = new PDO("mysql:host=$hostname; dbname=$userdb", $username, $password);
        $conn->exec("SET CHARACTER SET utf8");
    
        $sql = "SELECT * FROM Monday";
        $result = $conn->query($sql);
    
    
        while($row = $result->fetchAll(PDO::FETCH_ASSOC)) {
            echo $row['Name'] . '<br />';
            }
    
        $conn = null;
    
        }
    
        catch(PDOException $e) {
            echo $e->getMessage();
            }
    

    基本上,网站将显示第一个之后的所有内容 - &gt;在这种情况下,$ conn-&gt;但没有实际的表数据。

    至少从众多网站尝试了大约50种不同的方式,我现在只是迷失了...我猜...

    旁注:我在同一站点上有php表单,当提交成功时将数据插入表中,所以我知道我能够连接到db和table以及INSERT,它只是SELECT的问题我可以'得到。

    感谢您的帮助

    编辑:添加fetchAll

2 个答案:

答案 0 :(得分:2)

您在循环中使用方法fetch(),该方法仅获取结果的下一行。将其替换为fetchAll(),它应该有效。

有关fetchAll()方法的更多信息: http://php.net/manual/en/pdostatement.fetchall.php

出于测试目的,您可以将PDO错误模式设置为PDO::ERRMODE_EXCEPTION。请参阅:http://php.net/manual/en/pdo.error-handling.php

答案 1 :(得分:0)

while($row = $result->fetch(PDO::FETCH_ASSOC)) {

应该是;

while($row = $result->fetchAll(PDO::FETCH_ASSOC)) {