在几乎所有涉及操作数据库的脚本/函数中,我使用此代码:
$conn = connect();
if (!$conn) {
$e = oci_error();
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}
$sql = '...';
$stid = oci_parse($conn, $sql);
oci_execute($stid);
oci_fetch_all(...);
oci_close($conn);
$ sql和偶尔的获取方法各不相同,但在我知道的所有情况下,其余的保持100%相同。这是通过PHP进行数据库操作的正确方法吗?如果没有,我该如何避免这个样板代码?
答案 0 :(得分:1)
你可以走OO路线。例如...
Class DatabaseConnection {
private $conn;
public function __construct() {
$this->conn = connect();
if (!$this->conn) {
$e = oci_error();
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}
public function ExecuteQuery( $sql) {
$stid = oci_parse($this->conn, $sql);
oci_execute($stid);
$aResult = oci_fetch_all(...);
oci_close($this->conn);
return $aResult;
}
}
然后你的代码可以实例化这个类并传入sql。所以在你的剧本中......
$sql = '...';
$oNewDatabaseConnection = new DatabaseConnection();
$aResult = $oNewDatabaseConnection->ExecuteQuery($sql);
如果获取的方法不同,那么您可以在课程中添加一些新功能以反映这一点。
答案 1 :(得分:0)
最好的方法是使用您反复使用的方法创建一个Database类(它应该自动连接到构造函数中的数据库)。
但是,我强烈建议你不要重新发明轮子。 开始使用Codeigniter,Kohana,Laravel等框架。这将为您节省大量时间并教会您许多最佳实践。