Выберите точно совпадающие столбцы из таблицы в Zend ...? - PullRequest
3 голосов
/ 13 января 2012

Я столкнулся со странной проблемой в моем приложении Zend:

Моя модель выглядит следующим образом:

 public function checkEmailAndProfileName($emailId, $proName) {
    $select = $this->select()
                     ->where('email_address = ?', $emailId)
                     ->where('profile_name = ?', $proName);
    $result = $this->getAdapter()->fetchRow($select);
 }

Объяснение

Предположим, у меня есть строка в базе данныхадрес электронной почты "test@test.com" и имя профиля как "имя профиля".

Теперь, если я передам следующие параметры модели:

$modelObj->checkEmailAndProfileName("test@test.com", "profilename");

Он работает нормально, как я хочу.

Проблема

Теперь, если я передам:

$modelObj->checkEmailAndProfileName("test@test.com", "ProfileNAME");

Тогда он должен вернуть false, но странным образом он возвращает строку «test@test.com», «profilename».Что я не хочу ...

Может ли кто-нибудь помочь мне, рассказав, Что я делаю не так ...?

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

1 Ответ

2 голосов
/ 13 января 2012

Что вам нужно, это BINARY из mysql

Использование BINARY в предложении WHERE вызывает совпадение двоичного сопоставления, что на английском языке означает, что оно сопоставляет фактические символы по их коду, а не по тому, считаются ли символы эквивалентными.

public function checkEmailAndProfileName($emailId, $proName) {
    $select = $this->select()
                     ->where('email_address = ?', $emailId)
                     ->where('BINARY profile_name = ?', $proName);
    $result = $this->getAdapter()->fetchRow($select);
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...