Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/235.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-添加到数组和循环变量_Php_Mysql_Sql_Pdo - Fatal编程技术网

php-添加到数组和循环变量

php-添加到数组和循环变量,php,mysql,sql,pdo,Php,Mysql,Sql,Pdo,我有一个脚本,它循环遍历一组数据,并在执行此操作时调用函数: $d = $dbh->prepare(" SELECT * FROM xeon_users_rented WHERE since <= unix_timestamp(CURRENT_TIMESTAMP - INTERVAL 14 day) AND clicks_last <= unix_timestamp(CURRENT_TIMESTAMP - I

我有一个脚本,它循环遍历一组数据,并在执行此操作时调用函数:

$d = $dbh->prepare("
    SELECT  * 
    FROM    xeon_users_rented 
    WHERE   since       <= unix_timestamp(CURRENT_TIMESTAMP - INTERVAL 14 day) 
        AND clicks_last <= unix_timestamp(CURRENT_TIMESTAMP - INTERVAL 14 day)
");
$d->execute();

$rows      = $d->fetchAll(PDO::FETCH_ASSOC);
$new_array = array();

foreach ($rows as $data ) {
     $new_array[]      = $data['id'];
     $userToRecycleFor = $data['user_by'];
     $outcome          = $rentedrefs->_recycleMulti(
                            0,
                            $userToRecycleFor,
                            $new_array,
                            1
                        );
}   
现在,我的问题是,它可以很好地运行函数。虽然这只是第一次运行,但它仍然有效。我补充说:

echo "row count:";
echo $recycle_sql->rowCount();
这就是结果:

row count:1row count:0row count:0row count:0row count:0row count:0row count:0row count:0row count:0row count:0row count:0row count:0row count:0row count:0row count:0row count:0row count:0row count:0row count:0
正如您所看到的,这只是第一次运行它时,才有一个有效行


我做错了什么?

下面的解释是正确的:

如果关联的PDO语句执行的最后一条SQL语句为 对于SELECT语句,某些数据库可能返回行数 由该声明返回。然而,这种行为不能保证 适用于所有数据库,不应依赖于 应用程序

换句话说,
rowCount()

要检查查询是否成功,请检查
execute()
fetch()
的返回值,失败时两者都返回
false
。在后一种情况下,确保使用
==
进行比较以匹配类型。此外,如果查询失败,这些函数会抛出带有附加信息的异常。检查如何处理这些异常


除此之外,您根本没有在
$recycle
中使用结果。

第一印象:在每次循环迭代中用相同的字符串生成一个新的准备语句似乎是个坏主意。您能检查一下
$recycle=$recycle\u sql->fetch()是什么吗正在返回?@puelo它包含“用户”表中的数据我应该使用什么来代替rowCount()?检查可能导致错误的函数的返回代码。请参阅更新的答案。
row count:1row count:0row count:0row count:0row count:0row count:0row count:0row count:0row count:0row count:0row count:0row count:0row count:0row count:0row count:0row count:0row count:0row count:0row count:0