درود
من برای معتبر سازی از کد زیر استفاده کردم
مشکل اینجاست وقتی پارامتر رو جایگزین یا توی کد سرجاش میذاره، اون رو بین ' میذاره و کد sql رو دچار مشکل میکنه..
اشتباه من کجاست و یا چه کنم که دیگه اینجوری نشه و بتونم پارامتر ارسالی رو معتبر سازی کنم و کوئری به درستی اجرا بشه..
با تشکر
من برای معتبر سازی از کد زیر استفاده کردم
$query = data::find()->where("( `dtitle` like '%:search%' or `dtitle` like ':search%' or `dtitle` like '%:search' ) and `dstate`=1")->addParams([':search' => $search])->orderBy(' `did` desc');و وقتی از
$command = $query->createCommand(); echo $command->rawSql;استفاده میکنم تا sql ایجاد شده را ببینم، کد ساخته شده زیر رو نشون میده :
SELECT * FROM `data` WHERE ( `dtitle` like '%'weqwe'%' or `dtitle` like ''weqwe'%' or `dtitle` like '%'weqwe'' ) and `dstate`=1 ORDER BY `did` DESCو چون مهمه که خروجی به صورت شیء ActiveQuery برگردانده بشه از این روش استفاده میکنم.
مشکل اینجاست وقتی پارامتر رو جایگزین یا توی کد سرجاش میذاره، اون رو بین ' میذاره و کد sql رو دچار مشکل میکنه..
اشتباه من کجاست و یا چه کنم که دیگه اینجوری نشه و بتونم پارامتر ارسالی رو معتبر سازی کنم و کوئری به درستی اجرا بشه..
با تشکر