php - 强制 Yii 2 在 ActiveRecord 模型保存上使用准备好的语句

标签 php mysql yii2

为了更清楚地表达我的问题,我知道有 yii\db\CommandbindValue()和 bindParam() 方法,但我正在考虑让 ActiveRecord 自己完成它的可能性。我不想手动编写所有查询,而是使用内置函数。

class User extends \yii\db\ActiveRecord{
      public static function tableName(){
          return 'user';
      }
      public function rules(){ ... }
}
...

$user= new User();
$user->firstName='John';
$user->lastName='Doe';
$user->save();

当我查看调用 $model->save() 后执行的 SQL 时,我看到简单的 SQL 语句,例如 [yii\db\Command::execute]INSERT INTO user (firstName, lastName,...) VALUES ('John', 'Doe', ...)

这同样适用于 select 语句: [yii\db\Command::query] SELECT * FROMuserWHEREid=23

我希望框架应该创建准备好的语句并绑定(bind)参数。那会更快。

有没有办法强制它使用准备好的语句而不是普通的 SQL?

最佳答案

对于需要多次执行的复杂 SQL 语句,如 the docs 中所述这可能会提高性能。对于带有绑定(bind)参数的 SQL 语句,会自动调用此方法。

或者,您可以使用QueryBuilder生成查询。

关于php - 强制 Yii 2 在 ActiveRecord 模型保存上使用准备好的语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36817035/

相关文章:

javascript - 在 php mysql 和 jquery 中加载更多

php - 密码散列 : Keccak or not

php - 页面未重定向到具有正确用户名和密码的索引

PHP MySQL 增删改查 : Am I deleting safely?

php - 如何在Mysql中检查数组中的列

c# - 填充 DataGrid : how to manipulate data before showing it on C# MySQL

php - Depdrop 和动态表单更新问题

php - 从POST到php_self的奇怪的PHP header ()行为-跨环境不一致

php - 将数据库中的值(ID)添加到 yii2 中的操作按钮

javascript - Yii2:来自 PHP 的 window.open