YII束插入 - 避免SQL注入

我在循环中向DB(~500)插入大块数据(有近20000条或更多条记录) 总计):</ p>

  $ builder = Yii :: app() - &gt; db-&gt; schema-&gt; commandBuilder; 
$ command = $ builder-&gt; createMultipleInsertCommand ('product_supplier',
$ dataToDb
);
$ command-&gt; execute();
</ code> </ pre>

使用AR可以使用validate()方法 确保数据有效,AFAIK模型可以逃避所有危险数据。</ p>

我想避免被SQL注入。</ p>

我是否应该逃脱 当我使用多个插入或Yii时,我自己的所有数据都需要关心它? </ p>

使用标准PHP函数“mysqli_escape_string”是不是一个好主意?</ p>

我不确定它有多好。</ p>
\ n

谢谢。</ p>
</ div>

展开原文

原文

I insert big chunks of data to DB (~ 500) in the loop ( there are nearly 20000 or more records in total):

            $builder = Yii::app()->db->schema->commandBuilder;
            $command = $builder->createMultipleInsertCommand('product_supplier',
                  $dataToDb
            );
            $command->execute();

Using AR one can use validate() method to ensure that data are valid and AFAIK model escapes all dangerous data.

I would like to avoid to be SQL-injected.

Should I escape all data on my own when I use multiple insert or Yii takes care about it ?

Is it good idea to use standard PHP function "mysqli_escape_string " ?

I feel unsure how good it is.

Thanks.

1个回答



CDbCommand :: createMultipleInsertCommand()方法使用param绑定,所以它是安全的。</ p>

ActiveRecords也使用param绑定,没有额外的转义,因为它不是 必需。</ p>
</ div>

展开原文

原文

The CDbCommand::createMultipleInsertCommand() method uses param binding, so it's safe.

ActiveRecords also use param binding and there's no extra escaping as it is not required.

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐