【问题标题】:Yii createCommand Update with bindValueYii createCommand 使用 bindValue 更新
【发布时间】:2023-03-12 21:04:01
【问题描述】:

我在 Yii 框架中使用 createCommand,我想知道使用 bindValue 作为参数,例如:

Yii::app()->db->createCommand()
                            ->update('table', array(
                            'field'=>'$valuefield',
                            ), 'id_table=:id_table', array(':id_table'=>$id_table));

在这种情况下,$valuefield 和 $id_table 的值是受保护的吗?或者我应该手动创建 sql 查询并使用 bindValue 传递参数?

谢谢!

【问题讨论】:

  • are protected 是什么意思?
  • 如果 protected 您的意思是 escaped,那么 $id_table 会被转义,因为您正确传递了它。 $valuefield 将无法正确传递,因为您将其放在单引号中。这样做:Yii::app()->db->createCommand()->update('table', array('field'=>':valuefield'), 'id_table=:id_table', array(':id_table'=>$id_table, ':valuefield'=>$valuefield));
  • 我想要平均消毒。感谢您的回复,我将在查询中应用它。

标签: php database yii bindvalue


【解决方案1】:

在这种情况下,$valuefield 和 $id_table 的值是受保护的吗?

是的。方法update 自动绑定传入第二个参数的数组值。您还可以手动绑定参数以获取条件。为防止 SQL 注入,请始终使用绑定。

【讨论】:

  • 完美!在更新命令中手动为条件绑定参数的最佳方法是什么?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-05
  • 2015-06-02
相关资源
最近更新 更多