我是Prestashop的新手。我正在做一个小模块。在那个模块中,我想更新一个表。但我的条件是这样的,它会更新那些id不是3的行。所以对我来说,我的表就像这样
id name active
1 test1 0
2 test4 0
3 test5 1
4 test9 0
5 test12 0
6 test25 0
所以按照DB classes我的查询是这样的
$id = 3;
Db::getInstance()->update('table', array('active'=>'1'), 'id != '.$id );
我也试过
Db::getInstance()->update('table', array('active'=>'1'), 'id <> '.$id );
但它不起作用。所以有人可以告诉我如何解决这个问题。 任何帮助和建议都会非常明显。
答案 0 :(得分:2)
正如gskema所说,解决方案是将ID转换为int:
Db::getInstance()->update('table', array('active'=>'1'), 'id != '.(int)$id );
PrestaShop需要您为每列传递适当类型的值。对于&#34;十进制&#34;但是,如果值的格式正确,则可以传入一个字符串。