gpt4 book ai didi

php - 从数据库返回计数

转载 作者:行者123 更新时间:2023-11-29 07:09:02 26 4
gpt4 key购买 nike

我有以下脚本无法正常工作,因为我希望它能正常工作:

$DBH = new PDO( "mysql:host=localhost;dbname=database_name", "user", "pass" );
$DBH -> setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );

$STH = $DBH -> prepare( "select count( users_id ) from table1 where username = :username" );

$STH -> bindParam( ':username', $_POST['username'], PDO::PARAM_STR, 100 );

$STH -> execute();

$strCount = $STH -> rowCount();

if( $strCount == 1 ) {
echo $strCount;
echo "user has already registered, do nothing";
} elseif ( $strCount == 0 ) {
echo $strCount;
echo "user has not registered, insert into db";
} else {
echo $strCount;
echo "something is wrong, should only ever be 0 or 1";
}

$strCount 似乎总是返回 1

在表 1 中,我只有 1 行用户名是 username1。如果发布的值为 username1,那么我希望 $strCount 为 1,但出于某种原因,如果发布的值为 username2,我仍将 $strCount 设为 1。

有人知道我做错了什么吗?

最佳答案

您正在数两次!计数()和行计数()。PDOStatement::rowCount() 返回受相应 PDOStatement 对象执行的最后一个 DELETE、INSERT 或 UPDATE 语句影响的行数。

尝试进行常规提取

$count = $db->query("select count(*) from table")->fetch(); 

关于php - 从数据库返回计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5681035/

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