首先,如果这是一个非常愚蠢的问题,我很抱歉。
对于如何正确处理Yii中的SQL语句,我提出了一个问题。我会做一个小的例子代码。
public function actionCreate($id) {
$cmd = Yii::app()->db->createCommand();
$cmd->insert('table_1',array(
'user_id'=> (int) $id,
),'id=:id', array(':id'=>$id));
}确认此查询是否有效的正确方法是什么?它是尝试/捕捉块吗?
我问这个问题的原因是,如果它传递了一个糟糕的参数,它可能会失败,但是在两个表上,我有一些DB约束,这些约束也可能导致失败,所以我想确保正确地处理所有事情,而不是毛毯地处理它们。
发布于 2013-08-02 15:42:54
从正式文件
$connection=Yii::app()->db; // assuming you have configured a "db" connection
// If not, you may explicitly create a connection:
// $connection=new CDbConnection($dsn,$username,$password);
$command=$connection->createCommand($sql);
// if needed, the SQL statement may be updated as follows:
// $command->text=$newSQL;通过CDbCommand以下列两种方式之一执行SQL语句:
它就在这里
execute():执行非查询SQL语句,例如INSERT、UPDATE和DELETE。如果成功,则返回受执行影响的行数。
顺便说一句,insert()是一个由活动记录(AR)在内部使用的低级方法。你为什么不直接用AR代替
通过Yii,您可以自动获得table_1的模型,并从中查找、插入、更新、删除。示例:
$model = new Table1ModelName;
$model->user_id= $id;
$model->name= $user_name;
...
$model->save();关于Yii工作记录,仍然有许多变通方法和有趣的东西要研究。
https://stackoverflow.com/questions/18020169
复制相似问题