Надо вытянуть из БД данные и отобразить их

Бамагите подалуйста :)

надо вытянуть из бд некоторые данные о юзвере и отбразить их. сосно интересует как это сделать с помощью Yii

Хрен дождешся помощи. Сделал так:


public function actionid()

{

    $this->render('id',array(

        'data'=>$this->loadPost(),

    ));

}

 

private $data;

 

protected function loadPost($id=null)

{

    if($this->data===null)

    {

        if($id!==null || isset($_GET['id']))

            $this->data=User::model()->findbySql('SELECT * FROM user WHERE id='.$_GET["id"].'');

        if($this->data===null &&

            $this->data->status!=data::STATUS_PUBLISHED)

            throw new CHttpException(404,'Кто здесь?!');

    }

    return $this->data;

} 

я понимаю что это далеко не самый лучший вариант, кроме того потенциальная угроза для инъекции(вроде). но хз как сделать лучше




$this->data = User::model()->findbySql('SELECT * FROM user WHERE id='.$_GET["id"].'');



Тут не потенциальная угроза, а прямая. Чем вам метод findByPk не угодил?




User::model()->findByPk($_GET['id']);



P.S.:

Posted Today, 07:28 AM

Posted Today, 08:32 AM

Хрен дождешся помощи.

Нужно быть терпеливее :)

findByPk не хотел работать.

findbySql несколько строк принять может? и как их вытянуть? просто массивом сопротивляется.

нашел ужо - findAllBySql . Yii подлая штука :( времени жрет немеряно

и форум очень активный :))))))

Отсалось сделать ЧПУ и все :)

а я для начала на testdrive по документации делал авторизацию из базы SQLite

вот такую вот штуку подсказали сделать




 $username=strtolower($this->username);

                $user=User::model()->find('LOWER(login)=?',array($username));

                if ($user == NULL) {

                    $this->errorCode=self::ERROR_USERNAME_INVALID;

                }

                else if ($this->password !== $user->passwd)

                    $this->errorCode=self::ERROR_PASSWORD_INVALID;

                else



однако здесь меня смутила строка


$user=User::model()->find('LOWER(login)=?',array($username));

сказали что корректнее будет


$user=User::model()->find('LOWER(login)=:username',array(':username' => $username));

но можно и так, чтобы компактнее вышло