PHP PDO MySQL数组只返回列名

时间:2016-07-07 23:23:56

标签: php mysql arrays pdo

我遇到的问题是我准备好的SELECT结果数组没有保存实际的列值。我知道如何使用Java从sql数据库获取数据,但是我遇到了PHP PDO的问题。我连接到我知道可以工作的远程AWS数据库。这是代码:

        $conn = new PDO($dsn, $username, $password);
        //echo "Test";

我希望获得所有列的数据

        $sth = $conn->prepare("SELECT 'id', 'short-des', 'full-des', 'image-urls', 'date-created' FROM projects");
        $sth->execute();

我放置了PDO :: FETCH_BOTH,PDO :: FETCH_ASSOC,PDO :: FETCH_COLUMN。这篇文章末尾的结果是我将fetchall()留空的结果。当我插入任何PDO :: styles时,不返回任何值。我已经完成了其他方案,例如使用var_dump以及fetch语句中提供实际结果的样式,但没有列包含的实际值。

        $row = $sth->fetchAll();

        echo "<br>" . $row[0] . "<br>";
        echo "<br>" . $row[1] . "<br>";

        $column1 = $row[0];
        $column2 = $row[1];

        for($i = 0; $i < 5; $i++){
            echo " " . $column1[$i];
            $var = $column1[$i];
            echo " = " . $var . " , ";

        }
        for($i = 0; $i < 5; $i++){
            echo " " . $column2[$i];
            $var = $column2[$i];
            echo " = " . $var . " , ";
        }

这是结果文本:

  

64位PDO可用

     

阵列

     

阵   id = id,short-des = short-des,full-des = full-des,image-urls = image-urls,date-created = date-created,id = id,short-des = short-des,full- des = full-des,image-urls = image-urls,date-created = date-created,已成功连接

我猜测它没有显示实际值的一些愚蠢的简单原因。我不熟悉&#34; fetch&#34;因为我是来自JDBC的概念,但是过去几天我一直在努力让它工作无济于事。我查看了类似帖子,例如this postthis postthis post。这些似乎处理稍有不同的问题。不幸的是,我想使用预准备语句而不是实际查询。

1 个答案:

答案 0 :(得分:1)

我认为问题是你的单引号。试试这个:

$sth = $conn->prepare("SELECT `id`, `short-des`, `full-des`, `image-urls`, `date-created` FROM projects");

注意:反引号`与单引号'不同。