YII在子句中的绑定值

问题描述 投票:0回答:1
为了防止在YII中注入SQL在条款中,我们需要在子句中绑定参数,但是YII CDB标准查询在构建中没有此功能。

$products_ids = array(234,100,405,506);

映射绑定的阵列

$in_query = implode(',', array_fill(0, count($products_ids), '?'));

为select oflect的commadn对象进行准备

$command = Yii::app()->db->createCommand() ->select('product_id, product_name, product_image, product_price') ->from('products') ->where('product_id IN(' . $in_query . ')');

绑定参数

foreach ($products_ids as $k => $product_id){ $command->bindValue(($k+1),$product_id,PDO::PARAM_INT); }

获取结果

$products = $command->queryAll();

	
php mysql data-binding yii sql-injection
1个回答
1
投票

$orderIds = array(1,2); $criteria = new CDbCriteria(); $criteria->addInCondition("order_id", $orderIds,'AND'); $criteria->condition = 'product_id = :product_id'; $criteria->params = array(':product_id'=>$product->id ); $orderItems=new CActiveDataProvider('OrderItems', array( 'criteria'=>$criteria, 'pagination'=>array( 'pageSize'=>20, ), ));

我以前我本人问过这个问题,请参阅:
YII使用条件

的变量 我将其作为答案而不是评论,因为我也使用其他条件的添加条件也遇到了问题,这是由于末尾不包括

'AND'

参数数量无效。希望这有帮助

	

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.