私はデータベースをセットアップし (現在、user と email の 2 つのテーブルのみで進行中です)、Propel と統合しています。ユーザーを登録するとき、私は電子メールがまだ存在していないことを確認します (電子メールテーブルの現在の電子メールまたはユーザーデータベースの元の電子メールとして)。
propel で簡単にこれを行うには、以下を使用します。
if(EmailQuery::create()->filterByCurrent(TRUE)->findOneByEmailAddress($email) != NULL) {
// email address being used currently
} else if(UserQuery::create()->findOneByOriginalEmail($email) != NULL) {
// email address claimed on account already
}
最初のクエリは正常に動作しますが、2 番目のクエリはエラーを生成します: Syntax error: 7 ERROR: syntax error at or near "."
Propel によって生成された SQL クエリは次のようになります:
SELECT user.id, user.original_email, user.password, user.accept_terms, user.paid, user.customer_id, user.trial_end, user.created_at, user.updated_at, user.ip_address FROM user WHERE user.original_email=:p1 LIMIT 1
これをコピーして phpPgAdmin に貼り付けると、同じエラーが返されます (ユーザーと列の間の各 . を指します)。私は PostgreSQL を初めて使用します。不足している構文はありますか? 私が使用した他のすべての Propel クエリ ビルダーは問題なく動作しました。