我正在尝试使用zend框架更新类:http://framework.zend.com/manual/2.2/en/modules/zend.db.sql.html#zend-db-sql-update
创建类似于此处的语句:
http://dev.mysql.com/doc/refman/5.0/en/update.html
UPDATE items,month SET items.price=month.price WHERE items.id=month.id;
我已经尝试将数组传递给 - >表但是它在字符串转换时失败了。
// UPDATE `Array`
$update->table(['table1', 'table2'])
我尝试过创建一个转义字符串,但在转换为sql时最终会被双重转义。
// UPDATE ``table1`,`table2``
$update->table("`table1`,`table2`")
我已经尝试过作弊并使用内爆将这些表粘在一起
// UPDATE `table1``,``table2`
$update->table(implode("`,`", ['table1','table2']))
有没有人对这个问题有一个干净的答案?
答案 0 :(得分:0)
经过进一步研究,我不认为可以做到。我之所以这么说,是因为您提出的查询可能过于耗费资源。在寻找替代选项后,我遇到了Update one MySQL table with values from another。但是,我知道,Update对象上没有连接选项。所以至少在这个阶段,我不相信它可以做到。
答案 1 :(得分:0)
您是否正在尝试编写以下内容的sql:"更新tableOne
,tableTwo
设置...." !我认为在sql中不可能。因为mySql不支持这种syntex,所以做zend。这是zend table方法 -
public function table($table)
@param string|TableIdentifier $table
参数只是字符串或TableIdentifier。所以你必须在zend中编写两个sql
$update->table('table1');
$update->set(array('foo' => 'bar', 'baz' => 'bax'));
.......
........
$update->table('table2');
$update->set(array('foo1' => 'bar', 'baz1' => 'bax'));
希望它会对你有所帮助。