Jan 31, 2012 19:06
Вообще мне тут стало казаться, что разработчики 6-го друпала были более адекватны, чем разработчики 7-го друпала.
Вот конструкция из 6-го друпала:
db_query("insert into {role} set name='%s'","HPC school listener");
А вот конструкция 7-го друпала:
db_insert('role')->fields(array('name'=> 'HPC school listener')->execute();
Мне тут говорят преимущество в том, что можно не знать SQL, но объясните мне зачем создавать два временных анонимных объекта? И зачем вообще нужно делать execute в этом случае?
И вот ещё от туда же:
// Drupal 7
// Notice the place holders are now done using the same syntax as PDOs (:uid)
// Placeholders also don't need to be quoted anymore.
$uid = 1;
$result = db_query('SELECT n.nid, n.title, n.created
FROM {node} n WHERE n.uid = :uid', array(':uid' => $uid));
// Result is returned as a iterable object that returns a stdClass object on each iteration
foreach ($result as $record) {
// Perform operations on $record->title, etc. here.
// in this example the available data would be mapped to object properties:
// $record->nid, $record->title, $record->created
}
// Same example in Drupal 6
$uid = 1;
$result = db_query("SELECT n.nid, n.title, n.created
FROM {node} n WHERE n.uid = %d", $uid);
while ($record = db_fetch_object($result)) {
// Perform operations on $record->title, etc. here.
}
// NOTE: db_fetch_object and db_fetch_array have been removed from D7!
программирование