SQLite和PHP注册系统无法正常工作

时间:2015-08-26 02:33:48

标签: php sqlite registration

这是我使用PHP和SQLite的注册码。它始终遵循声明"用户已存在"当它肯定没有。我检查用户名是否大于数据库中的用户名(如果存在)并且没有,但是如果我回显计数它总是说它等于一......

$checkUser = $db->prepare('
    SELECT COUNT(*) 
    FROM users
    WHERE 
    user = ?
');

$checkUser->setFetchMode(PDO::FETCH_ASSOC);
$checkUser->execute(array($user));


$numrows = count($checkUser);

if ($numrows == 0) {

    try {

        $reg = $db->prepare("
            INSERT
            INTO users
            (user, pass, email)
            VALUES
            ('$user', '$pass', '$email')  
        ");

        $reg->setFetchMode(PDO::FETCH_ASSOC);
        $reg->execute();

    } catch (PDOException $e) {
        print_r($e->getMessage());
    }

    echo ('success...');
}
else {


    die ('user already exists');
}

1 个答案:

答案 0 :(得分:0)

我不使用SQLite,但您看起来$numrows只是检查执行实际成功运行(boolean true/false)。尝试更新此位:

// I like to name "count" otherwise returned as "COUNT(*)" in the array key
$checkUser = $db->prepare('
    SELECT COUNT(*) as count
    FROM users
    WHERE 
    user = ?
');

// Execute with bind
$checkUser->execute(array($user));
// Fetch an associative array
$result =   $checkUser->fetch(PDO::FETCH_ASSOC);
// The count will be here as a numeric
if ($result['count'] == 0) {