php - PDO::FETCH_ASSOC 不返回值。我对不同的方法感到困惑,你能帮我解决吗?

标签 php mysql list pdo

我对 php 很不熟悉。 我想通过从数据库中获取对象来创建一个菜单,但我对所有不同的这样做方法(来自学校和互联网)感到困惑,并且我需要在脑海中进行一些排序。

这就是我到目前为止所做的,我使用两个不同的类来执行此操作。

数据库.php

class Db extends PDO {

    private $uname;
    private $passwd;
    private $hostname;
    private $dbname;

    public function __construct() {
        $this->uname = "root";
        $this->passwd = "";
        $this->hostname = "127.0.0.1";
        $this->dbname = "myclienti";

        try {
            parent::__construct('mysql:charset=utf8mb4;host=' . $this->hostname . ';dbname=' . $this->dbname, $this->uname, $this->passwd);
        } catch (PDOException $e) {
            echo $e->getMessage();
        }
    }

}

Servizie.php

class Servizie {
    private $codice_utente;
    private $desc_servizio;
    private $puntopresa;



    function getCodice_utente() {
        return $this->codice_utente;
    }

    function getDesc_servizio() {
        return $this->desc_servizio;
    }

    function getPuntopresa() {
        return $this->puntopresa;
    }

    function setCodice_utente($codice_utente) {
        $this->codice_utente = $codice_utente;
    }

    function setDesc_servizio($desc_servizio) {
        $this->desc_servizio = $desc_servizio;
    }

    function setPuntopresa($puntopresa) {
        $this->puntopresa = $puntopresa;
    }




    public function getAllServizie() {
        $db = new Db();

        $query = 'select CODICE_UTENTE, DESC_SERVIZIO, PUNTOPRESA from serviziele';
        $statement = $db->prepare($query);
        $statement->execute();
        $object = $statement->fetchAll(PDO::FETCH_ASSOC);
        return $object;

    }

}

我想放置菜单的索引页的一部分。

       <?php
        $servizie = new Servizie();


        $list = $servizie->getAllServizie();
        echo '<div id="dropdown-contentelectr">';
        foreach ($list as $element){
            echo '<a href="#">' . $element->PUNTOPRESA . '</a>';
        }

        echo '</div>';
        ?>

抱歉我的英语不好。

最佳答案

作为关联数组获取时,您可以按索引检索数据

$element['PUNTOPRESA'];

如果您想作为类/实例获取,请使用:

PDO::FETCH_INTO
PDO::FETCH_CLASS

或者\stdClass 返回一个匿名对象。

PDO::FETCH_OBJ

这些将允许使用箭头表示法访问所获取对象的属性。

用法:

statement->fetchAll(PDO::FETCH_OBJ);

欲了解更多信息,请阅读: http://php.net/manual/en/pdostatement.fetch.php

如果您想要数据库类的示例,请查看该示例(它是微框架的一部分,因此仅以我编写的为例): https://github.com/yuxblank/phackp/blob/master/src/phackp/core/Database.php

关于php - PDO::FETCH_ASSOC 不返回值。我对不同的方法感到困惑,你能帮我解决吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39919706/

相关文章:

python - 如何使用字符串变量中的列表名称

c# - 使用更新的数据库中的值重新创建列表

php - 无法实时从redis读取

php - 扩展 PHP 类以允许通过 __callStatic 找到新方法

php - 如何知道访问 token 是否在 Google Api PHP 中过期

mysql - docker.io - 使用 Scala 连接到 MySQL

php - Codeigniter select 始终返回顶行数据

PHP session - 登录表单 - 无法登录

javascript - 根据第一个字母获取元素

php - 如果产品来自某个类别,则 WooCommerce 执行功能