PDA

View Full Version : ارسال پارامتری داده در query



desatir7316
دوشنبه 03 آذر 1393, 19:52 عصر
سلام
خسته نباشید
وقتی کوئری رو به شکل زیر می دم فقط یه سطر بر می گردونه:



$dataProvider = new ActiveDataProvider([
'query' => Item::findBySql('SELECT * FROM item WHERE id IN ( :var );', [':var' => $items_id]),
]);


ولی وقتی به صورت زیر میدم درست بر می گردونه:


$dataProvider = new ActiveDataProvider([
'query' => Item::findBySql('SELECT * FROM item WHERE id IN ('.$items_id.');'),
]);


دلیلش چیه؟

desatir7316
چهارشنبه 05 آذر 1393, 07:54 صبح
http://www.yiiframework.com/forum/index.php/topic/59833-use-parameter-in-query-only-return-one-row/page__p__267741__fromsearch__1#entry267741

MMSHFE
چهارشنبه 12 آذر 1393, 09:49 صبح
$dataProvider = new ActiveDataProvider([
$query = Item::find()->where(['in', 'id', $itemIds]),
]);

MMSHFE
چهارشنبه 12 آذر 1393, 09:50 صبح
دلیلش اینه که وقتی شما بصورت پارامتر میدین، میاد Escape میکنه و کوتیشنهای بین مقادیر حذف میشن و کل عبارت بصورت یک رشته درنظر گرفته میشه.