dral / oodb
简单面向对象数据库处理器,类似于mongoDB。
Requires
- php: >=5.3.0
This package is not auto-updated.
Last update: 2024-09-23 14:10:25 UTC
README
厌倦了PHP中所有半面向对象的数据库处理器,
并且受到nodejs中mongoDB完全面向对象工作的启发,我创建了OODB。
它不是一个真正的数据库,而是一个用于轻松且易于阅读地访问它们的类。
创建连接和表
您只需导入OODB主类。
这将帮助您导入您想使用的数据库类型。
include('OODB/OODB.php');
现在您已经准备好实例化数据库处理器。
在这个例子中,我将连接到MySQL数据库。从PHP 5.3开始,您可以使用
$database = OODB::mysql($host, $database, $user, $password);
但是PHP版本较低的人应该使用
$database = OODB::get("mysql", $host, $database, $user, $password);
请注意,创建处理器与创建mysqli处理器不同,后者是
$database = new mysqli($host, $user, $password, $database); # just the order of arguments
创建处理器后,您可以在数据库中选择一个表。
$table = $database->tablename;
是的,实际上就这么简单!但这还不是最酷的部分。
获取、设置、删除
这才是真正的强大之处。假设我们已经连接到数据库,并在上一节中选择了表,并且我们已经设置了一个具有以下结构的表(您还不能使用此包装器创建表)
但是,表是空的!让我们添加一些信息!
$table->insert(array( 'firstname' => 'Markus', 'lastname' => 'Persson', 'Age' => 42 ));
就是这样!现在这些信息已经插入。添加参数的顺序没有限制。只需使用名称即可。脚本会自动识别'id'是auto_increment,因此不会给您错误。脚本还通过自动使用bind_param防止任何形式的mysql注入。当您尝试插入不存在的列时,它会给您一个指导性的错误。
现在表看起来像这样
我现在神奇地添加了一些更多
好吧,但如果我们想找到Markus Persson的年龄呢!让我们看看我们能做什么
$result = $table->find(array( 'firstname' => 'Markus', 'lastname' => 'Persson', )); if(count($result) !=== 1) { die("None, or more than one found? Strange.."); } $markus = $result[0]; echo "The age of ".$markus['firstname']." ".$markus['lastname']." is ".$markus['age'];
就这么简单!我知道$markus['firstname']和lastname有点多余,但我只是想展示所有数据如何进入一个干净、易于使用的数组。
想象一下,如果你想删除所有18岁以上的人。可以这样操作
/* Note how I use $database here again, it's for easier comparisons */ $table->delete(array( 'age' => $database::gte(18) ));
或者没有$database变量,它的工作方式就像mongodb一样
$table->delete(array( 'age' => array('$gte' => 18) ));
文档
更新:您可以使用以下方式使用update
$table->update($where, $new);
所以,在先前的例子中,如果我想将所有名字为"Markus"的人的年龄设置为1337,我会这样做。您还可以使用以下方式更新
$table->update(array( 'firstname' => 'Markus' ), array( 'age' => 1337 ));
我很快会写一个API参考 :)