【问题标题】:PHP PDO MySQL array only returning column names [duplicate]PHP PDO MySQL数组仅返回列名[重复]
【发布时间】:2016-07-07 23:23:56
【问题描述】:

我的准备好的 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 , 连接成功

我猜测它没有显示实际值的一些愚蠢的简单原因。由于我来自 JDBC,因此我不熟悉“获取”概念,但是过去几天我一直试图让它工作但无济于事。我看过类似的帖子,例如this postthis postthis post。这些似乎处理略有不同的问题。不幸的是,我想使用准备好的语句而不是实际的查询。

【问题讨论】:

    标签: php mysql arrays pdo


    【解决方案1】:

    我相信问题出在你的单引号上。试试这个:

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

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

    【讨论】:

    • 不幸的是,这并不能解决问题。我使用单引号是因为我在某处看到如果您的列名中有关键短语,您可以使用它们。单词 'fill' 和 'date' 被突出显示。 $sth = $conn->prepare("SELECT id, short-des, full-des, image-urls, date-created FROM projects");
    • @JosiahL。 var_dump($row); 会随着这个变化输出什么?实际上,您使用的是反引号 `not '。现在就用反引号试试吧。
    • 它无法输出任何东西。然而,这是它用单引号输出的内容: array(2) { [0]=> array(10) { ["id"]=> string(2) "id" [0]=> string(2) " id" ["short-des"]=> string(9) "short-des" [1]=> string(9) "short-des" ["full-des"]=> string(8) "full- des" [2]=> string(8) "full-des" ["image-urls"]=> string(10) "image-urls" [3]=> string(10) "image-urls" ["创建日期"]=> 字符串(12) "创建日期" [4]=> 字符串(12) "创建日期" } [1]=> 数组(10) { ["id"]=> 字符串( 2) "id" [0]=> string(2) "id" ["short-des"]=> string(9) "short-des" [1]=> string(9) "short-des" [ "full-des"]=> 字符串(8)
    • "full-des" [2]=> string(8) "full-des" ["image-urls"]=> string(10) "image-urls" [3]=> string(10) "image-urls" ["date-created"]=> string(12) "date-created" [4]=> string(12) "date-created" } }
    • 更正我刚刚注意到你说的是反引号。它通过 var_dump 显示数据,以及我在帖子中的路线。
    猜你喜欢
    • 2021-12-27
    • 2013-11-06
    • 1970-01-01
    • 2015-02-24
    • 2014-05-01
    • 2017-03-14
    • 1970-01-01
    • 2020-05-24
    • 2012-05-10
    相关资源
    最近更新 更多