【发布时间】:2012-11-09 08:22:26
【问题描述】:
我是 OOP PHP 的新手,我希望尽快掌握尽可能多的编码约定。我制作了这个小小的留言簿脚本,我想知道是否有什么不应该做的事情。
索引.php:
<?php
$username = "root";
$password = "";
$database = "oop";
$host = "localhost";
mysql_connect($host, $username, $password);
mysql_select_db($database);
?>
<html>
<head>
</head>
<body>
<?php
include("views/gaestebog.php");
?>
</body>
</html>
Guestbook.php,类:
<?php
class Gaestebog {
public function __contruct() {
}
public function getPosts() {
$query = mysql_query("SELECT * FROM gaestebog");
while ($row = mysql_fetch_array($query)) {
echo '
<tr>
<td>'.$row['navn'].'</td>
</tr>
<tr>
<td>'.$row['besked'].'</td>
</tr>
';
}
}
public function addPost($navn, $besked) {
mysql_query("INSERT INTO gaestebog VALUES('', '$navn', '$besked')");
}
}
?>
和guestbook.php,视图:
<?php
include("classes/Gaestebog.php");
$gaestebog = new Gaestebog();
if (isset($_POST['opret'])) {
$navn = $_POST['navn'];
$besked = $_POST['besked'];
$gaestebog->addPost($navn, $besked);
}
?>
<table>
<?php
$gaestebog->getPosts();
?>
</table>
<hr />
<form action="" method="post">
<table>
<tr>
<td>Navn:</td>
<td><input type="text" name="navn" value="Patrick" /></td>
</tr>
<tr>
<td>Besked:</td>
<td><input type="text" name="besked" value="Hej med dig !!" /></td>
</tr>
<tr>
<td><input type="submit" name="opret" value="Opret" /></td>
</tr>
</table>
</form>
【问题讨论】:
-
您可能需要在线查看有关您使用 MySQL 数据库操作的 PHP 手册,例如
mysql_query()不再建议 php.net/manual/en/function.mysql-query.php 一种替代方法是使用 @987654327 @interface with is OOP. -
不要使用
mysql,而是使用mysqli或PDO。使用参数化查询。使用数据库抽象类,而不是在您的类中使用核心数据库函数。我现在能想到的就这些了 -
当我使用 mysqli 时,我应该在 mysqli 连接的每个类中创建一个新对象吗?
-
@PatrickReck:不,您创建一个实例,然后将它传递给您的对象/方法。
标签: php oop convention