gpt4 book ai didi

php - 具有特定类的 mysql_fetch_object

转载 作者:行者123 更新时间:2023-11-29 06:04:56 24 4
gpt4 key购买 nike

我开发了一个面向对象的留言簿,并且我有我的类GuestBookEntry:

class GuestBookEntry {
protected $id;
protected $entryDate;
protected $authorName;
protected $authorMail;
protected $entryText;

// getters, setters and specific functions are omitted
}

我还有一个与列同名的 mysql 表。

嗯,当我获取留言簿条目时,它似乎可以工作,但它只显示由 getter 返回的 IDDate。其他的东西不会返回到模板中。

代码如下所示:

public function showEntries() { 
$query = mysql_query('SELECT * FROM dng_entries ORDER BY id DESC');
while($entry = @mysql_fetch_object($query, 'GuestBookEntry')) {
if(empty($entry)) {
echo '<font color="white">Keine Eintr&auml;ge vorhanden...</font>';
} else {
var_dump($entry);
echo '<table class="table table-bordered entryfield" align="right">
<thead>
<tr>
<td rowspan="2">'.$entry->getId().'</td>
<td width="20%">Datum:</td>
<td>Name:</td>
<td>Email:</td>
</tr>
<tr>
<td>'.$entry->getEntryDate().'</td>
<td>'.$entry->getAuthorName().'</td>
<td><a href="mailto:'.$entry->getAuthorMail().'">'.$entry->getAuthorMail().'</a></td>
</thead>
<tbody>
<tr>
<td width="10%" valign="middle">Eintrag:</td>
<th colspan="3" valign="top" height="100px">'.$entry->getEntryText().'</td>
</tr>
</tbody>
</table>';
}
}
}

这是一个var_dump,例如对象:

object(GuestBookEntry)#2 (5) { ["id":protected]=> string(1) "2" ["entryDate":protected]=> int(1344696811) ["authorName":protected]=> NULL ["authorMail":protected]=> NULL ["entryText":protected]=> NULL }

更新:这是 GuestBookEntry 类的其余部分:

public function __construct($authorName, $authorMail, $entryText) {
$this->authorName = $authorName;
$this->authorMail = $authorMail;
$this->entryDate = time();
$this->entryText = $entryText;
}

public function getId() {
return $this->id;
}
public function getAuthorName() {
return (String) $this->authorName;
}
public function getAuthorMail() {
return (String) $this->authorMail;
}
public function getEntryDate() {
return date('d.n.Y', $this->entryDate);
}
public function getEntryText() {
return $this->entryText;
}

public function setAuthorName($authorName) {
$this->authorName=$authorName;
}
public function setAuthorMail($authorMail) {
$this->authorMail=$authorMail;
}
public function setEntryDate($entryDate) {
$this->entryDate=$entryDate;
}
public function setEntryText($entryText) {
$this->entryText=$entryText;
}

最佳答案

您的问题是区分大小写。 MySQL 列名不处理驼峰式大小写,但 PHP 会根据大小写看到属性之间的差异,例如 $entryDate 和 $entrydate。如果需要视觉分离,请坚持使用带下划线的小写字母。 id 起作用的原因是它都是小写的。

我认为,如果您只需小写所有应该映射到表列的属性名称,一切都会起作用。

顺便说一句...列名的驼峰式大小写问题可能会因运行 SQL Server 的操作系统而异。

关于php - 具有特定类的 mysql_fetch_object,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11915706/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com