我正在使用POP PHP框架(http://www.popphp.org/)。我正在尝试编写一个准备好的语句来检查数据库中是否存在电子邮件地址。
通过手册,我找不到任何关于如何将文本字符串与数据库中的结果进行比较的示例,只有数字。要做到这一点并不难,就像:
$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 :(得分:0)
我不知道POPPHP,但在检查API时,您正在寻找的是Pop\Db\Sql\Predicate::equalTo($column, $value, $combine)
,例如:
$sql->select()->where()->equalTo('email', '?');