【问题标题】:How to make a "find and update" query in Paris如何在巴黎进行“查找和更新”查询
【发布时间】:2011-11-23 20:44:09
【问题描述】:

我正在使用Paris with Idiorm,但在文档中查找有关如何查找和更新表格的明确说明时遇到问题。

我不想在脚本中插入 sql 查询。有没有其他办法?

Paris 是一个基于 Idiorm 的 Active Record 实现。 Idiorm 是一个对象关系映射器和流畅的查询构建器。

我有兴趣一次性完成类似 count = count + 1 的操作

【问题讨论】:

  • 你能解释一下Paris是什么吗? SO 标签为空,我找不到reasonable entry on Wikipedia
  • 我没有说更多,因为我希望有人已经在使用它,但@Charles 编辑了我的问题。谢谢!
  • 更新文档中的记录

标签: php orm idiorm


【解决方案1】:

我在他们的github site:上找到了这个:

更新记录 要更新数据库,请更改对象的一个​​或多个属性,然后调用 save 方法将更改提交到数据库。同样,您可以使用 set 方法或直接设置属性的值来更改对象属性的值:

$person = ORM::for_table('person')->find_one(5);

// The following two forms are equivalent
$person->set('name', 'Bob Smith');
$person->age = 20;

// Syncronise the object with the database
$person->save();
Creating new records

要添加新记录,您需要首先创建一个“空”对象实例。然后像往常一样在对象上设置值,然后保存它。

$person = ORM::for_table('person')->create();

$person->name = 'Joe Bloggs';
$person->age = 40;

$person->save();

对象保存后,可以调用它的id()方法来查找数据库分配给它的自动生成的主键值。

检查属性是否被修改 要检查自对象创建(或上次保存)后属性是否已更改,请调用 is_dirty 方法:

$name_has_changed = $person->is_dirty('name'); // Returns true or false

【讨论】:

  • 我该怎么做类似 count = count + 1 的事情?
  • @andrei 我想你可以到$person->number = $person->number + 1;
【解决方案2】:

根据 github 页面上的文档,在 idiorm 中,您可以通过执行以下操作来更新记录:

$person = ORM::for_table('person')->find_one(5);

// The following two forms are equivalent
$person->set('name', 'Bob Smith');
$person->age = 20;

// Syncronise the object with the database
$person->save();

或者在“巴黎”做:

$user = Model::factory('User')->find_one($id);
$user->name = 'Paris';
$user->save();

【讨论】:

  • 我该怎么做类似 count = count + 1 的事情?
  • 我的意思是增量查询类似于 UPDATE record SET row = row + 1 WHERE 条件
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-01
  • 1970-01-01
  • 2015-04-18
  • 1970-01-01
相关资源
最近更新 更多