本文整理汇总了PHP中sql::getInsert方法的典型用法代码示例。如果您正苦于以下问题:PHP sql::getInsert方法的具体用法?PHP sql::getInsert怎么用?PHP sql::getInsert使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类sql
的用法示例。
在下文中一共展示了sql::getInsert方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: on_node_change
/**
* @mcms_message ru.molinos.cms.hook.node
*/
public static function on_node_change(Context $ctx, $node, $op)
{
try {
list($sql, $params) = sql::getInsert('node__log', array('nid' => $node->id, 'uid' => $ctx->user->id, 'username' => $ctx->user->getNode()->getName(), 'operation' => $op, 'ip' => $_SERVER['REMOTE_ADDR'], 'timestamp' => mcms::now(), 'name' => $node->name));
$ctx->db->exec($sql, $params);
} catch (TableNotFoundException $e) {
}
}
示例2: saveNew
/**
* Создание новой ноды.
*/
private function saveNew(array $data)
{
if (null !== $this->parent_id) {
$position = $this->getDB()->getResult("SELECT `right` FROM `node` WHERE `id` = ?", array($this->parent_id));
$max = intval($this->getDB()->getResult("SELECT MAX(`right`) FROM `node`"));
// Превращаем простую ноду в родительску.
if (null === $position) {
$this->getDB()->exec("UPDATE `node` SET `left` = ?, `right` = ? WHERE `id` = ?", array($max, $max + 4, $this->parent_id));
$data['left'] = $this->data['left'] = $max + 1;
$data['right'] = $this->data['right'] = $max + 2;
} else {
$delta = $max - $position + 1;
// mcms::debug($position, $max, $delta);
// Вообще можно было бы обойтись сортированным обновлением, но не все серверы
// это поддерживают, поэтому делаем в два захода: сначала выносим хвост за
// пределы текущего пространства, затем — возвращаем на место + 2.
$this->getDB()->exec("UPDATE `node` SET `left` = `left` + ? WHERE `left` >= ?", array($delta + 2, $position));
$this->getDB()->exec("UPDATE `node` SET `right` = `right` + ? WHERE `right` >= ?", array($delta + 2, $position));
$this->getDB()->exec("UPDATE `node` SET `left` = `left` - ? WHERE `left` >= ?", array($delta, $position + 2));
$this->getDB()->exec("UPDATE `node` SET `right` = `right` - ? WHERE `right` >= ?", array($delta, $position + 2));
$data['left'] = $this->data['left'] = $position;
$data['right'] = $this->data['right'] = $position + 1;
}
}
list($sql, $params) = sql::getInsert('node', $data);
$sth = $this->getDB()->prepare($sql);
$sth->execute($params);
$this->id = $this->getDB()->lastInsertId();
}
示例3: testGetInsert
public function testGetInsert()
{
list($sql, $params) = sql::getInsert('table', array('id' => 1, 'name' => 'test'));
$this->assertEquals('INSERT INTO `table` (`id`, `name`) VALUES (?, ?)', $sql);
$this->assertEquals(array(1, 'test'), $params);
}