gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 18:12:54 25 4
gpt4 key购买 nike

这是我使用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');
}

最佳答案

我不使用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) {

关于php - SQLite和PHP注册系统无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32217082/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com