Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php PDO的rowCout()始终为零_Php_Pdo_Sqlite - Fatal编程技术网

Php PDO的rowCout()始终为零

Php PDO的rowCout()始终为零,php,pdo,sqlite,Php,Pdo,Sqlite,PDO的rowCount方法始终返回零值,即使有结果,根据: 计数$sth->fetchPDO::FETCH_ASSOC>1 从以下PHP代码: $_user = "a"; $_pass = "b"; $query = "select user,password from login where user = :user and password = :pass"; $conn = new PDO("sqlit

PDO的rowCount方法始终返回零值,即使有结果,根据:

计数$sth->fetchPDO::FETCH_ASSOC>1

从以下PHP代码:

               $_user = "a";
               $_pass = "b";
         $query = "select user,password from login where user = :user and password = :pass";
    $conn = new PDO("sqlite:" .Config::$db_file);
    $conn->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
    $sth = $conn->prepare($query);
    $sth->bindParam(':user', $_user);
    $sth->bindParam(':pass', $_pass);
    $sth->execute();
    $result = $sth->fetch(PDO::FETCH_ASSOC);
    echo "rowCount() = ",$sth->rowCount(),"\n";
    echo 'count($result) = ', count($result), "\n";
    print_r($result);
我得到:

rowCount() = 0 count($result) = 2 Array ( [user] => a [password] => b )
如何修复此问题?

rowCount返回受相应PDOStatement对象执行的最后一条DELETE、INSERT或UPDATE语句影响的行数

它不适用于select语句

检查manual:

rowCount返回受相应PDOStatement对象执行的最后一条DELETE、INSERT或UPDATE语句影响的行数

它不适用于select语句


检查是否手动引用文档:如果关联PDO语句执行的最后一条SQL语句是SELECT语句,则某些数据库可能会返回该语句返回的行数。但是,并非所有数据库都能保证这种行为,便携式应用程序也不能依赖这种行为。我不是,但可能是因为手册中对此进行了明确解释。引用文档:如果关联PDO语句执行的最后一条SQL语句是SELECT语句,某些数据库可能返回该语句返回的行数。但是,并非所有数据库都能保证这种行为,便携式应用程序也不应依赖这种行为。我不是,但可能是因为手册中对此进行了明确解释。