dral/oodb

简单面向对象数据库处理器,类似于mongoDB。

dev-master 2014-09-13 14:15 UTC

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参考 :)