Я использую 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";
}
Как мне сделать, чтобы этот код был заполнен?
Спасибо за поставив меня в правильном направлении. Правильный код выглядит следующим образом: \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