Конструктор запросов Yii::app()->db

Обсуждение документации. Переводы Cookbook и авторские рецепты.
Ответить
Reinchold
Сообщения: 48
Зарегистрирован: 2013.01.17, 02:19

Конструктор запросов Yii::app()->db

Сообщение Reinchold »

Всем доброго времени суток!
помогите пожалуйста мой sql-запрос переложить на yii-экранированный запрос...
он выглядит следующим образом:

Код: Выделить всё

    $id = $_GET["id"]; // 10
                
    $value = $_GET["value"]; // student

    $sql = "SELECT * FROM 
        ".$value." JOIN user  
        WHERE user.school_id= ".$id."
        AND ".$value.".user_id = user.id";
я пытался сделать изпользуя пример, правда не сработало, выглядит так:

Код: Выделить всё

                $sql = Yii::app()->db->createCommand()
                ->select('*')
                ->from('student s')
                ->join('user u')
                ->where('u.school_id= :id', array(':id'=>$id))
                ->and('s.user_id = u.id')
                ->queryRow();
 
Аватара пользователя
lancecoder
Сообщения: 2532
Зарегистрирован: 2012.06.26, 17:16

Re: Конструктор запросов Yii::app()->db

Сообщение lancecoder »

я не спец в бд, но разве не надо селект u.*, s.*?
Krava
Сообщения: 63
Зарегистрирован: 2012.11.03, 14:14

Re: Конструктор запросов Yii::app()->db

Сообщение Krava »

Код: Выделить всё

Yii::app()->db->createCommand(SELECT id, name FROM table WHERE id=:id)->queryAll(true, array(':id' => $id)); 
Reinchold
Сообщения: 48
Зарегистрирован: 2013.01.17, 02:19

Re: Конструктор запросов Yii::app()->db

Сообщение Reinchold »

lancecoder писал(а):я не спец в бд, но разве не надо селект u.*, s.*?

в примере было так:

Код: Выделить всё

$user = Yii::app()->db->createCommand()
    ->select('id, username, profile')
    ->from('tbl_user u')
    ->join('tbl_profile p', 'u.id=p.user_id')
    ->where('id=:id', array(':id'=>$id))
    ->queryRow();
Аватара пользователя
lancecoder
Сообщения: 2532
Зарегистрирован: 2012.06.26, 17:16

Re: Конструктор запросов Yii::app()->db

Сообщение lancecoder »

Reinchold писал(а):

Код: Выделить всё

                $sql = Yii::app()->db->createCommand()
                ->select('*')
                ->from('student s')
                ->join('user u')
                ->where('u.school_id= :id', array(':id'=>$id))
                ->and('s.user_id = u.id')
                ->queryRow();
раз вам тяжело покрутить колесеком вверх то я опущу вашу мессагу вниз и покажу как было впримере
Reinchold
Сообщения: 48
Зарегистрирован: 2013.01.17, 02:19

Re: Конструктор запросов Yii::app()->db

Сообщение Reinchold »

lancecoder писал(а):
Reinchold писал(а):

Код: Выделить всё

                $sql = Yii::app()->db->createCommand()
                ->select('*')
                ->from('student s')
                ->join('user u')
                ->where('u.school_id= :id', array(':id'=>$id))
                ->and('s.user_id = u.id')
                ->queryRow();
раз вам тяжело покрутить колесеком вверх то я опущу вашу мессагу вниз и покажу как было впримере
Да нет, вы меня не правильно поняли, я с примера, который на официальном сайте, показал его как рабочий и сделал свой запрос, но мой yii-sql запрос не работает...
вот ссылка, откуда я его взял:
http://www.yiiframework.com/doc/guide/1 ... ry-builder
Аватара пользователя
Koduc
Сообщения: 140
Зарегистрирован: 2011.02.15, 18:56

Re: Конструктор запросов Yii::app()->db

Сообщение Koduc »

Reinchold писал(а):помогите пожалуйста мой sql-запрос переложить на yii-экранированный запрос...
так не?

Код: Выделить всё

 $sql = "SELECT * FROM 
        :value JOIN user  
        WHERE user.school_id=:id
        AND :value.user_id = user.id";
$result = Yii::app()->db->createCommand($sql)->queryAll(true, array(':value' => $_GET["value"], ":id" => $_GET["id"]));
 
Разработка на Yii: monoray.ru
Открытое бесплатное решение для создания сайтов по аренде/продаже недвижимости: Open Real Estate
Ответить