array( 'EmailAddress' => "EmailAddress", 'ConfirmationKey' => "ConfirmationKey", 'SettingsKey' => "SettingsKey", 'Currency' => "Currency" ), 'numeric' => array( 'CampaignId' => "CampaignId", 'Amount' => "Amount" ), 'timestamp' => array( 'SubscriptionDate' => "SubscriptionDate", 'UnsubscriptionDate' => "UnsubscriptionDate", 'LastEmailDate' => "LastEmail" ), 'boolean' => array( 'IsConfirmed' => "Confirmed", 'IsActive' => "Active" ), 'campaign' => array( 'Campaign' => "CampaignId" ) ); public static function FindByEmail($email, $key = "", $expiry = 0) { if(empty($key)) { return self::CreateFromQuery("SELECT * FROM subscriptions WHERE `EmailAddress` = :EmailAddress", array(':EmailAddress' => $email), $expiry); } else { return self::CreateFromQuery("SELECT * FROM subscriptions WHERE `EmailAddress` = :EmailAddress AND `SettingsKey` = :SettingsKey", array(':EmailAddress' => $email, ':SettingsKey' => $key), $expiry, true); } } }