Вопрос начинающего про пример блога

Приветствую вас форумчане, я на начальном этапе изучения php и фрейворка.

Если не затруднит потратьте пару секунд вашего времени и помогите мне.

Вот код из примера создания блога.

Компонет - /components/UserIdentity.php




<?php

class UserIdentity extends CUserIdentity

{

    private $_id;

 

    public function authenticate()

    {

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

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

        if($user===null)

            $this->errorCode=self::ERROR_USERNAME_INVALID;

        else if(!$user->validatePassword($this->password))

            $this->errorCode=self::ERROR_PASSWORD_INVALID;

        else

        {

            $this->_id=$user->id;

            $this->username=$user->username;

            $this->errorCode=self::ERROR_NONE;

        }

        return $this->errorCode==self::ERROR_NONE;

    }

 

    public function getId()

    {

        return $this->_id;

    }

}



Вопрос возник по поводу данной строки:


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

а в частности данной конструкции:


'LOWER(username)=?'

сам вопрос вот таков: понятно что LOWER это поиск username с дальнейшим приведением к нижнему регистру, а вот что значит =?

Перерыл все, смотрел тернарные операторы так и не понял что это значит.

В ответе рассчитывайте на низший уровень знаний php и фреймворка.

Заранее спасибо.

А смотреть нужно справку по PDO :)

Точнее - использование параметров в запросах: http://www.php.net/manual/en/pdostatement.bindvalue.php

Маленький пример:




User::model()->findBySql('SELECT * FROM users WHERE id = :id', array(':id'=>$_GET['id']));



Такой способ позволяет не заботиться о "плохих" символах в переданном id, т.к. его значение передается отдельно от запроса. Использование "?" дает тот же эффект, но я предпочитаю вариант из примера.

Ага, почитал про плейсхолдеры все встало на свои места, спасибо.

Вопрос закрыт.