我对 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/