YII CActiveRecord-> find () - PullRequest
       18

YII CActiveRecord-> find ()

2 голосов
/ 27 сентября 2011

Я сейчас все еще изучаю YII на уроке блога и любопытно с некоторым кодом.

по этой ссылке
http://www.yiiframework.com/doc/blog/1.1/en/prototype.auth

есть такой код

<?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;
}
}

и мне любопытно, какой-то код.

  1. Почему в конце строки кода нет ?>?
  2. в этой строке $user=User::model()->find('LOWER(username)=?',array($username)); почему использовать LOWER(username)=?, а не LOWER(username)=. ПОЧЕМУ НУЖНО ?, это какой-то запрос, который я еще не знал, может быть?

1 Ответ

7 голосов
/ 27 сентября 2011
  1. ?> на самом деле не требуется, согласно этой ссылке :

    Закрывающий тег блока PHP в конце файла является необязательным, и в некоторых случаях его исключение полезно при использовании include () или require (), поэтому нежелательные пробелы не будут появляться в конце файлов, и вы все равно сможете добавить заголовки к ответу позже. Это также удобно, если вы используете буферизацию вывода и не хотите видеть добавленные нежелательные пробелы в конце частей, сгенерированных включенными файлами.

  2. ? относится к синтаксису SQL, как видно из здесь . Также второй ответ здесь говорит, что:

    Знак вопроса представляет параметр, который впоследствии будет заменен. Использование параметризованных запросов более безопасно, чем встраивание параметров прямо в запрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...