【发布时间】:2019-06-30 11:22:30
【问题描述】:
所以我正在创建一个 cronJob,它将从我的用户表中选择所有用户,然后将用户全名存储在一个变量中。所有这一切都发生在一个 while 循环内,在同一个循环内,我从我的 customerLeads 表中选择所有内容,其中assignedTo 列等于用户全名。然后在这个循环中,我想记录 customerName 并将它们全部存储在一个数组中。因此,每个用户都将拥有自己的数组,其中包含所有客户名称。
这样做的目的是每天早上运行,以便用户在超过 2 天没有更新 customerLead 时会收到一封电子邮件。
但是我不断收到此错误;
致命错误:未捕获的错误:调用 /.../customerLeadReminder.php:18 中布尔值的成员函数 fetch() 堆栈跟踪:在 /homepages/.../customerLeadReminder.php 中抛出 #0 {main}在第 18 行
我在网上看了一圈,都说是连接不通,但我查了一下,连接运行正常...
问题:为什么会出现这个错误,我做错了什么?
<?php
//Error Reporting
ini_set('display_startup_errors', 1);
ini_set('display_errors', 1);
error_reporting(-1);
require '../includes/conn.php';
$userList = $salesConn->query("SELECT `email`, `firstname`, `lastname` FROM `users`");
while ($uRow = $userList->fetch()) {
$user_name = $uRow['firstname']." ".$uRow['lastname'];
print_r($uRow);
$customerList = $salesConn->query("SELECT * FROM `customerLeads` WHERE curdate() >= (dateUpdated + interval 2 day) AND `assisgnedTo` = '$user_name' ORDER BY `customerID` DESC");
// show this on error
if (!$customerList) {
// For PDO:
echo $salesConn->errorInfo();
}
while ($cRow = $customerList->fetch()) {
$leadID = $cRow['customerID'];
$firstName = $cRow['customerFirstName'];
$lastName = $cRow['customerLastName'];
$tele = $cRow['customerTel'];
....
$dateCreated = $cRow['dateCreated'];
$dateUpdated = $cRow['dateUpdated'];
}
}
?>
通过打印$uRow 它显示:
数组 ( [电子邮件] => joe.blogs@outlook.com [0] => joe.blogs@outlook.com [名字] => 乔 [1] => 博客 [姓] => 博客 [2] => 博客)
连接页面是:
<?php
$salesConn = new PDO('mysql:host=HOST;dbname=DBNAME', 'USERNAME', 'PASSWORD');
$salesConn->setAttribute(PDO::ATTR_ERRMODE);
?>
新错误:警告:PDO::setAttribute() 需要 2 个参数,1 个在 /homepages/38/d735513801/htdocs/includes/conn.php 第 8 行给出
【问题讨论】:
-
如果我 var_dump($salesConn);我得到:对象(PDO)#1(0){}
-
对不起,第 18 行是:while ($cRow = $customerList->fetch()) {
-
那么请在当前信息下方编辑您的问题。向我们展示您的
conn.php的样子。干杯 -
这是我被侮辱的地方...那是我的 conn.php 没有别的...我知道这是糟糕的编码,但我想先让它全部工作...
-
出于显而易见的原因,我已经用 DBNAME 和 PASSWORD 替换了数据,但除此之外,这是我的 conn.php 页面
标签: php mysql database while-loop fetch