sách gpt4 ai đã đi

php - OOP 或 MySQL 调用。生成对象还是直接从 MySQL 调用?

In lại 作者:行者123 更新时间:2023-11-29 02:06:21 29 4
mua khóa gpt4 Nike

我不确定什么是更好的做法或更现实的做法。我希望从头开始创建目录系统,但不确定最佳方法是什么。

我想我在需要显示信息时使用对象,例如 info.php?id=100。有这样的代码用于显示

Game.class.php 文件

class Game {
private $name;
private $type;
private $database;

public function __construct($database, $id) {
$information = $database->select($id); // returns mysql_fetch_array

$this->database = $database;
$this->setName($information['name']);
$this->setType($information['type']);
}

public function __destruct() {
unset($this->name);
...
}
...
private function setName($name) {
$this->name = $name;
}
...
public function getName() {
return $this->name;
}
...
public function addToDatabase() {
// stuff here to check if it exists in the database or not
$database->insert('test', array('id' => '', 'name' => $this->name, 'type' => $this->type));
}
}

info.php?id=100 文件

// already have __autload()

$id = sanitize($_POST['id']);
$item = new Game($db, $id);
echo "Item name: " . $item->getName() . "
";

但是当我添加或更新东西时,我真的不需要为 like 创建对象 add.php?name=XMen&type=GameBoy

我不想这样做:

$name = sanitize($_POST['name']); // sanitize
$type = sanitize($_POST['type']); // sanitize
$newObject = new Game($name, $type);
$newObject->addToDatabase();

我应该跳过创建对象而直接插入

$name = sanitize($_POST['name']); // sanitize
$type = sanitize($_POST['type']); // sanitize
$sql = "INSERT INTO test ('id', 'name', 'type') VALUES ('', $name, $type)";
mysql_query($sql);

或者如果我有一个数据库类

$name = sanitize($_POST['name']); // sanitize
$type = sanitize($_POST['type']); // sanitize
$db->insert('test', array('id' => '', 'name' => $name, 'type' => $type));

1 Câu trả lời

要获得完整的抽象,您可以查看第 3 方 ORM。至少,您应该创建自己的数据库类。如果我只打算建立一个数据库连接,我通常会使用单例设计模式。

您不希望到处都是原始 SQL 语句,因为您可能需要切换到和/或支持不同版本的 MySQL,甚至是不同的数据库。替换单个数据库管理对象比在整个代码中修复所有这些查询更容易。

我的一个数据库类与您发布的第三个选项非常相似,而且效果很好。它具有许多便利功能,例如 insertArray()、getOneRow()、getOne()、getOneFromAllRows()、executeExternalFile(),以及适用于所有类似 SELECT 的查询的可迭代结果集。

关于php - OOP 或 MySQL 调用。生成对象还是直接从 MySQL 调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5319705/

29 4 0
Bài viết được đề xuất: mysql - 高级 MySQL : Find correlations between poll responses
Bài viết được đề xuất: MySQL 加入不返回所有结果
Bài viết được đề xuất: php - 使用 jquery、ajax 拖放时更改图片?
Bài viết được đề xuất: php - Mysql select - 获取时间戳的日期
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com