در فریم ورک Yii برای کار با دیتابیس و اعمال کوئری های خود میتوانیم از ActiveRecord استفاده کنیم
برای مثال :
User::model()->findByPk(1);
راه دیگه برای اعمال کوئری های دلخواه خودمون میتوانیم از Query Builder استفاده کنیم.
دراینجا چند نمونه ی پر کاربرد را همراه با نتیجه ای که خواهد داشت را قرار داده ایم.
createCommand کلاسی است که به ما امکان دسترسی به دیتابیس و اعمال کوئری های خود را میدهد.
با استفاده از این کلاس شما به روش های مختلف میتوانید کوئری بزنید.
۱- queryRow()
برای دریافت یک سطر از نتیجه ی کوئری استفاده میشود.
برای عمل select استفاده می شود
$user = Yii::app()->db->createCommand() ->select('*') ->from('user') ->where('id=:id', array(':id' => 8)) ->queryRow();
نتیجه :
Array ( [id] => 8 [email] => amirajlo@yahoo.com [password] => amQhZiLmR7u3c [first_name] => امیر [last_name] => عاجلو [status] => 1 [path] => 1450122223.jpg )
۲-queryAll()
همانند کد بالا با این تفاوت که تمام سطر های نتیجه را برمیگرداند
$users = Yii::app()->db->createCommand() ->select('*') ->from('user') ->queryAll();
نتیجه:
Array ( [۰] => Array ( [id] => 3 [email] => info@goyii.ir [password] => inbPLRNe.XTOI [first_name] => امیر [last_name] => عاجلو [status] => 1 [path] => ) [۱] => Array ( [id] => 8 [email] => amirajlo@yahoo.com [password] => amQhZiLmR7u3c [first_name] => امیر [last_name] => عاجلو [status] => 1 [path] => 1450122223.jpg ) [۲] => Array ( [id] => 9 [email] => a@a.a [password] => 123456 [first_name] => امیر [last_name] => عاجلو [status] => 1 [path] => a.jpg ) [۳] => Array ( [id] => 10 [email] => a@a.a [password] => 123456 [first_name] => امیر [last_name] => عاجلو [status] => 1 [path] => a.jpg ) [۴] => Array ( [id] => 11 [email] => a@a.a [password] => 123456 [first_name] => امیر [last_name] => عاجلو [status] => 1 [path] => a.jpg ) [۵] => Array ( [id] => 12 [email] => a@a.a [password] => 123456 [first_name] => امیر [last_name] => عاجلو [status] => 1 [path] => a.jpg ) [۶] => Array ( [id] => 13 [email] => a@a.a [password] => 123456 [first_name] => امیر [last_name] => عاجلو [status] => 1 [path] => a.jpg ) [۷] => Array ( [id] => 14 [email] => a@a.a [password] => 123456 [first_name] => امیر [last_name] => عاجلو [status] => 1 [path] => a.jpg ) [۸] => Array ( [id] => 15 [email] => a@a.a [password] => 123456 [first_name] => امیر [last_name] => عاجلو [status] => 1 [path] => a.jpg ) [۹] => Array ( [id] => 16 [email] => a@a.a [password] => 123456 [first_name] => امیر [last_name] => عاجلو [status] => 1 [path] => a.jpg ) [۱۰] => Array ( [id] => 17 [email] => a@a.a [password] => 123456 [first_name] => امیر [last_name] => عاجلو [status] => 1 [path] => a.jpg ) [۱۱] => Array ( [id] => 18 [email] => a@a.a [password] => 123456 [first_name] => امیر [last_name] => عاجلو [status] => 1 [path] => a.jpg ) )
۳-update()
برای به روز رسانی اطلاعات
که شامل چند پارامتر اجباری و اختیاری میباشد
به این صورت که :
پارامتر اول : به صورت رشته (string) نام جدول مورد نظر شما
پارامتر دوم:به صورت آرایه (Array) که ابتدا نام ستون و سپس مقدار مورد نظر
پارامتر سوم:شروط کوئری ماست
پارامتر چهارم:بایند کردن پارامتر هایی است که استفاده شده است
$update = Yii::app()->db->createCommand() ->update('user', array('first_name' => 'امیر', 'last_name' => 'عاجلو'), 'id >:id', array(':id' => 1));
نتیجه تعداد رکوردی است که ویرایش شده است. صفر به معنی این است که رکوردی ویرایش نشده است
۴- execute()
دستور اجرای کوئری ما می باشد
برای insert ,update,delete استفاده می شود .
$sql = "INSERT INTO user(email,password,first_name,last_name,status,path) VALUES " . "('a@a.a','123456','a','b',1,'a.jpg')," . "('a@a.a','123456','a','b',1,'a.jpg')," . "('a@a.a','123456','a','b',1,'a.jpg');"; $execute = Yii::app()->db->createCommand($sql)->execute();
نتیجه :
همانند update تعداد رکوردی که انجام شده است را بر می گرداند
۵-queryScalar()
برای نمایش تعداد استفاده می شود
مثل count
$queryScalar = Yii::app()->db->createCommand() ->select("id") ->from("user") ->where('id >:id', array(':id' => 8)) ->queryScalar();
نتیجه یک عدد است
۶-queryColumn()
نمایش اولین ستون از اولین سطر
$queryColumn = Yii::app()->db->createCommand('select * from user') ->queryColumn();
نتیجه :
ستون id است