PHP PDO没有插入或抛出错误

时间:2015-02-12 20:12:12

标签: php mysql pdo insert

电子邮件没有插入到数据库中,但是我收到了成功的回音而没有任何错误。我不确定出了什么问题。我已经尝试了重复的电子邮件,我收到了重复的电子邮件消息,因此它连接到数据库,并且在重复时不会插入;但是,它似乎没有插入任何东西,当它不是重复。它似乎只是跳过上传的步骤。

<?php
include 'db_functions.php';
$_POST['email'] = 'somenewemail@gmail.com';
if(isset($_POST['email']) && ($_POST['email'] != NULL || $_POST['email'] != '')){
    $ERRORS = array();
    $cleanEmail = htmlentities($_POST['email']);

    $database = dbconnlocal();
    $queryEmailExists = $database->prepare("SELECT email FROM email_list WHERE email= ?");
    $queryUploadEmail = $database->prepare("INSERT INTO email_list (email) VALUES ( ? )");

    $database->beginTransaction();
    try 
    {
        $queryEmailExists->execute(array($cleanEmail));
        $results = $queryEmailExists->fetchAll(PDO::FETCH_ASSOC);
        $dbEmail = $results[0]['email'];

        if(trim($dbEmail) == trim($cleanEmail)) {
            // duplicate email
            throw new Exception('duplicateEmail');
        } else {
            // new email
            $queryUploadEmail->execute(array($cleanEmail));
            echo json_encode('success');
        }

    } 
    catch (Exception $e) 
    {
        switch(trim($e->getMessage())) {
            case 'duplicateEmail':
                // handle duplicate error   
                $ERRORS['error'] = 'duplicateEmail';
                break;
            default:
                // handle default errors
                $ERRORS['error'] = 'default';
                break;
        }
            echo json_encode($ERRORS['error']);
    }
} else { echo json_encode('emptyEmail'); /* empty email */ };

&GT;

0 个答案:

没有答案