带有Zend / PDO变量的MySQL更新查询

时间:2016-11-22 11:48:14

标签: mysql

我有这个查询,它会增加index列中按值排序的现有行中的值key

UPDATE `documents`, (
  SELECT @row_number:=ifnull(@row_number, 0)+1 as `new_index`, `id` 
  FROM `documents`
  WHERE `path` = "/path/to/doc"
  ORDER BY `key`
) AS `table_position`,
(
  SELECT @row_number:=0
) AS `rowNumberInit`
SET `index` = `table_position`.`new_index`
WHERE `table_position`.`id` = `documents`.`id`

我使用这个PHP代码来执行它:

/** @var PDO $pdo */
$ret = $pdo->query($sql);
// Now every value in column `index` is set to 1
$res = $ret->execute();
// Now every value in column `index` is counted up

这看起来不像是正确的做法。

我目前直接使用PDO,因为Zend_Db_Adapter_Pdo_Mysql似乎会对此查询造成严重破坏。

除此之外,我想在WHERE子句中使用“/ path / to / doc”字符串作为绑定参数。用?替换它并将值传递给execute()不起作用。

如何使用Zend或PDO正确执行此操作?

0 个答案:

没有答案