【发布时间】:2025-12-08 12:50:01
【问题描述】:
六年前,我在没有任何经验的情况下开始了一个新的 PHP OOP 项目,所以我只是边做边编。无论如何,我注意到我相当强大的 mySQL 服务器有时太容易陷入困境,并且想知道限制某些 db 活动的最佳方法是什么,当我想出这个时,例如......
private $q_enghours;
public function gEngHours() {
if ( isset($this->q_enghours) ) {
} else {
$q = "SELECT q_eh FROM " . quQUOTES . " WHERE id = " . $this->id;
if ($r = $this->_dblink->query($q)) {
$row = $r->fetch_row();
$r->free();
$this->q_enghours = $row[0];
}
else {
$this->q_enghours = 0;
}
}
return $this->q_enghours;
}
这似乎可以有效地大大减少对 db 的必要读取。如果填充了对象属性,则无需访问 db。请注意,几乎有两打类都具有相同的“getter”db 访问例程。我只在一个地方实现了这个更改,并且想知道在我重新编写所有类之前是否有可能错过的“最佳实践”。
【问题讨论】:
-
让我们从您的代码对 SQL 注入 100% 开放的事实开始(绑定您的变量,不要将它们粘贴到 SQL 中!)。
-
虽然是一个有效的观点,但这并不真正适用于我提出的问题。我在应用程序的不同部分处理了 SQL 注入。