为了更清楚地回答我的问题,我知道有yii''db''Command和bindValue()和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]
插入 INTO user
( firstName
, lastName
,...)价值观("约翰"、"母鹿"等)
这同样适用于选择语句:[yii''db''Command::query] SELECT * FROM
用户WHERE
ID =23
我希望该框架应该创建准备好的语句并绑定参数。那会更快。
有没有办法强制它制作预准备语句而不是纯 SQL?
对于要多次执行的复杂 SQL 语句,如文档中所述,这可能会提高性能。对于具有绑定参数的 SQL语句,将自动调用此方法。
或者,您可以使用 QueryBuilder 生成查询。