Php API和数据库调用在同一页上
我在a页上有一个PHP表单 我把表格提交到B页,在那里信息进入数据库 我还需要进行API调用,将提交的电子邮件地址添加到MailChimp 我正在使用mailchimp api脚本: 输入数据的表单自行工作,添加电子邮件的API自行工作 但当我尝试在同一页上同时做这两件事时,我得到:Php API和数据库调用在同一页上,php,mysql,mailchimp-api-v3.0,Php,Mysql,Mailchimp Api V3.0,我在a页上有一个PHP表单 我把表格提交到B页,在那里信息进入数据库 我还需要进行API调用,将提交的电子邮件地址添加到MailChimp 我正在使用mailchimp api脚本: 输入数据的表单自行工作,添加电子邮件的API自行工作 但当我尝试在同一页上同时做这两件事时,我得到: This page isn’t working XYZ.com is currently unable to handle this request. HTTP ERROR 500 相关代码如下。我尝试过切换调用
This page isn’t working
XYZ.com is currently unable to handle this request.
HTTP ERROR 500
相关代码如下。我尝试过切换调用顺序(API和数据库)。我尝试将API调用放入条件语句中:
if ($conn->query($sql) === TRUE) { }
以下是整个代码块:
<?php
// API call
include('MailChimp.php');
use \DrewM\MailChimp\MailChimp;
$MailChimp = new MailChimp('xxxxxxxxxxxxxxx-us1');
$list_id = 'xxxxxxxxxxx';
$email = $_POST['email'];
$result = $MailChimp->post("lists/$list_id/members", [
'email_address' => $email,
'status' => 'subscribed',
'interests' => ['xxxxxxxxxxx' => true],
]);
// database call
if(isset($_POST['addauth'])){
$email = $_POST['email'];
$conn = new mysqli("localhost", "xxxxxxxxxxx", "xxxxxxxxxxx", "xxxxxxxxxxx", 3306);
if ($conn->connect_errno) {
echo "Failed to connect to MySQL: (" . $conn->connect_errno . ") " . $conn->connect_error;
}
$first_name = $_POST['first_name'];
$last_name = $_POST['last_name'];
$email = $_POST['email'];
$implanted = $_POST['implanted'];
$pacemaker = $_POST['pacemaker'];
$over_21 = $_POST['over_21'];
$updates = $_POST['updates'];
$sql = sprintf("INSERT INTO patients (FIRST_NAME, LAST_NAME, EMAIL, IMPLANTED, PACEMAKER, OVER_21, UPDATES, DATE) values ('%s','%s','%s','%s','%s','%s','%s', CURDATE())",
mysqli_real_escape_string($conn,$first_name),
mysqli_real_escape_string($conn,$last_name),
mysqli_real_escape_string($conn,$email),
mysqli_real_escape_string($conn,$implanted),
mysqli_real_escape_string($conn,$pacemaker),
mysqli_real_escape_string($conn,$over_21),
mysqli_real_escape_string($conn,$updates));
if ($conn->query($sql) === TRUE) {
//echo "New record created successfully" . $sql;
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
$conn->close();
} ?>
数据库中是否输入了任何数据?每当出现500个错误时,您需要查看web服务器的错误日志并找到实际的消息。这里的人可能会帮你发现你的打字错误并纠正这个错误,但从长远来看,你需要找到实际的信息,这将给你一个更好的提示,并且可能是错误的行号。查看apache/nginx/lighttpd错误日志,并发布导致500错误的错误消息。代码看起来“很好”(没有解析错误)。如果将错误报告(E_ALL)添加到页面中,是否会得到任何输出?但正如@mikeb所说,检查您的服务器日志,以获得更多信息,了解页面返回500的原因。到:vivek_23是的,数据添加到:Bert Maurau I added error_reporting(E_ALL)感谢您提醒我@mikeb查看错误日志,我发现“解析错误:语法错误,意外的‘用法’(T_use)”,在搜索该错误后,我移动了“用法…”它引用的include下面的一行,页面就工作了!我不知道为什么一个空白行会有不同,但确实如此。谢谢大家!