2013-03-10 2 views
0

Я использую POP PHP Framework (http://www.popphp.org/). Я пытаюсь написать подготовленный оператор, чтобы проверить, существует ли уже существующий адрес электронной почты в базе данных.Подготовленный оператор, такой как POP PHP Framework

Копание в руководстве Я не могу найти пример того, как сравнивать текстовую строку с результатом в базе данных, только цифры. Для того, чтобы сделать это не так сложно, как:

$sql->select()->where()->greaterThanOrEqualTo('id', '?'); 

Но сравнение, если адрес электронной почты, существует или нет, я не могу найти решение. Ниже мой неполный код. Строка 6 - это то, где я пытаюсь провести сравнение. Не получается ошибка, потому что она не поддерживается. Почтовый адрес существует в базе данных, так что это не проблема.

// Check if user already exists 
$db = Db::factory($this->type, $this->creds); 

// Create a prepared statement 
$sql = new Sql($db, 'user'); 
$sql->select()->where()->like('email', '?'); 

// Prepare the statement, bind the parameters and execute 
$db->adapter()->prepare('email', '?'); 
$db->adapter()->bindParams(array('email' => $post['email'])); 
$db->adapter()->execute(); 


print_r($db->adapter()->fetch()); 


if($db->adapter()->fetch() != false) 
{ 
    $error['userExists'] = "User exists"; 
    echo "Exists"; 
} 

Как мне сделать, чтобы этот код был заполнен?

ответ

0

Я не знаю POPPHP, но при осмотре API, кажется, что вы ищете Pop\Db\Sql\Predicate::equalTo($column, $value, $combine), например .:

$sql->select()->where()->equalTo('email', '?'); 
+0

Спасибо за поставив меня в правильном направлении. Правильный код выглядит следующим образом: \t \t \t '// Проверка пользователя уже существует \t \t \t $ дб = DB :: завод ($ this-> тип, $ this-> кредитки); \t \t \t \t \t \t // Создать подготовленное заявление \t \t \t $ SQL = новый Sql ($ дб, 'пользователь'); \t \t \t $ sql-> select() -> где() -> equalTo ('email', '?'); \t \t \t \t \t \t echo $ sql. '
'. PHP_EOL; \t \t \t \t \t \t \t \t \t \t \t \t \t \t // Подготовить заявление, связать параметры и выполнить \t \t \t $ db-> адаптер() -> подготовить ($ SQL); \t \t \t $ db-> adapter() -> bindParams (array ('email' => $ post ['email'])); \t \t \t $ db-> adapter() -> execute(); ' – Robert

Смежные вопросы