Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.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 多个MySQL删除禁用电子邮件通知_Php_Mysql_Select - Fatal编程技术网

Php 多个MySQL删除禁用电子邮件通知

Php 多个MySQL删除禁用电子邮件通知,php,mysql,select,Php,Mysql,Select,我想做四件事,但如果我注释掉步骤3,我只能让步骤1、2和4起作用:(1)从订单标题中获取第一个名称以包含在电子邮件通知中,(2)删除订单标题,(3)删除订单项目,以及(4)删除订单标题时发送电子邮件通知 只有在注释掉步骤3时,以下代码才会执行步骤1、2和4: $pdo = Database::connect(); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // (1) Get first_name $sq

我想做四件事,但如果我注释掉步骤3,我只能让步骤1、2和4起作用:(1)从订单标题中获取第一个名称以包含在电子邮件通知中,(2)删除订单标题,(3)删除订单项目,以及(4)删除订单标题时发送电子邮件通知

只有在注释掉步骤3时,以下代码才会执行步骤1、2和4:

$pdo = Database::connect();
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

// (1) Get first_name
$sql = "SELECT id, first_name FROM Orders where id = ?";
$q = $pdo->prepare($sql);
$q->execute(array($id));
$data = $q->fetch(PDO::FETCH_ASSOC);
$first_name = $data['first_name'];
$last_name = $data['last_name'];

// (2) delete Header record
$sql = "DELETE FROM Orders  WHERE id = ?";
$q = $pdo->prepare($sql);
$q->execute(array($id));

// (3) Delete Order Items
// $sql = "DELETE FROM Order_Items  WHERE id = ?";
// $q = $pdo->prepare($sql);
// $q->execute(array($id));

// I moved these 2 lines to the bottom as suggested by Martin
Database::disconnect(); 
header("Location: index.php");

// (4) send email notification 
$to = "email address 1";
$email_from = "email address 2";
$today = date("m.d.y");
$body = "";

$semi_rand = md5(time());
$mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";

$headers = "MIME-Version: 1.0\n" .
"From: {$email_from}\n" .
"Content-Type: multipart/mixed;\n" .
" boundary=\"{$mime_boundary}\"";

$subject = "Order record deleted - " 
. $id . " " 
. $first_name  . " " 
. $last_name  . "-" 
. $today;

mail($to, $subject, $body, $headers); 
当我取消对第3步的评论时,不仅第3步不起作用,而且第4步也不起作用

错误日志可能会有所帮助,但我无法找到解决方案。它说:

Uncaught exception 'PDOException' with message 'SQLSTATE[42S22]: Column not found: 1054 Unknown column 'id'

在$q->execute(数组($id))出现的行上抛出错误。我唯一能想到的是,第1步和第2步是在同一张表(订单)上工作的,所以它不介意。但是现在,我在一个新表(Order\u Items)上引入了一个命令,这让人感到困惑。

您的
Order\u Items
表是否有一个名为
id
的列

@马丁-你是个天才。不,这叫订单号。谢谢

不,唉,我只是读了错误消息:

未捕获异常“PDOException”,消息为“SQLSTATE[42S22]:未找到列:1054未知列“id”


始终阅读您的错误消息

您的
Order_Items
表是否有一个名为
id
的列

@马丁-你是个天才。不,这叫订单号。谢谢

不,唉,我只是读了错误消息:

未捕获异常“PDOException”,消息为“SQLSTATE[42S22]:未找到列:1054未知列“id”


始终阅读您的错误消息

如果在第二个请求之后而不是第三个请求之后断开pdo与数据库的连接,这正常吗?
database::disconnect();标题(“Location:index.php”)为什么在这里?在第3步之前,这将发生在第3步之前,因此将中断您的脚本逻辑。我想对@Martin说同样的话,在您有Database::disconnect()时,您不可能在第3步中得到错误;标题(“Location:index.php”);在此之前,您的
Order\u Items
表是否有一个名为
id
的列?此外,您仍然在告诉PHP在到达发送电子邮件的代码之前加载另一个文件,而头不会在发现时立即运行,通过将
标题置于代码之前,仍然很难理解您的感知逻辑,如果您在第二个请求之后而不是第三个请求之后断开pdo与数据库的连接,这是正常的吗?
database::disconnect();标题(“Location:index.php”)为什么在这里?在第3步之前,这将发生在第3步之前,因此将中断您的脚本逻辑。我想对@Martin说同样的话,在您有Database::disconnect()时,您不可能在第3步中得到错误;标题(“Location:index.php”);在此之前,您的
Order\u Items
表是否有一个名为
id
的列?此外,您仍然在告诉PHP在到达发送电子邮件的代码之前加载另一个文件,而头不会在发现时立即运行,通过将
标题置于代码之前,仍然很难理解您感知的逻辑here@Fred-ii-啊,但时间可能很长,而且不可饶恕。。。。我怀念《私家侦探》的日子…@Fred ii-啊,但时间可能很长,也很无情。。。。我怀念私人侦探的日子。。。。