class lnemail_fetch
的代码片段
<?php Part of heritage_classes.php
// Declare classes
class lnemail_fetch {
// return string in format "title | factoid"
public $result;
public function get_ln_info()
{
include ("./includes/LOheritage-config.php");
mysql_connect("$dbhost", "$dbuser", "$dbpass") or die(mysql_error());
mysql_select_db("$dbname") or die(mysql_error());
$query = "SELECT * FROM lnemail";
$result = mysql_query($query);
$this->result = $result;
}
}
?>
来自较大程序的代码片段它列出了一个 MySQL 表
require_once('./includes/heritage_classes.php');
$newlnemail_fetch = new lnemail_fetch;
$newlnemail_fetch->get_ln_info();
$newresult = $newlnemail_fetch->result;
echo "lnemail File display <br />";
while($row = mysql_fetch_array($newresult))
{
echo $row['ln_email']. " | " . $row['ln_date'] . " | " . $row['ln_week'] ;
echo "<br />";
}
这种 PHP OOP 的使用是否被认为是好的实践,即使它现在工作得很好?
最佳答案
我会说不,这对 OOP 没有好处。
需要改进的地方:
分离数据库连接和查询内容。 分离数据库结果处理。实现可迭代的结果对象将是一个好主意。 不使用 mysql 扩展并切换到 mysqli 是一个非常好的主意。它还将免费为您提供 MySQL 的 OOP 接口(interface)。
可能应该考虑在 SQL 字符串中转义输入的方面,但这是不确定的,因为没有显示此类代码。
关于PHP OOP 代码运行良好。这是正确的做法吗?将来的某个版本会破坏它吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12732870/