当数据库连接位于单独的文件 (config.php) 中时,PDO 准备好的语句停止重定向。查询正常工作(即正确插入等),并且当数据库连接在文档中而不是在单独的文件中时重定向工作正常,但是当数据库连接移动到另一个文件时它停止工作。它不会抛出任何错误消息。
为了排除类似问题中提到的其他问题(错误消息和 URL 路径)。我还删除了错误消息(因此它绝对不会在文档中打印任何内容)并尝试用完整的 URL 替换相对路径。当错误报告打开时,它被包装在一个 try/catch 块中,如图所示。
更新 -
下面的代码有效,但如果我$conn = new PDO...
用require_once('config.php');
它替换不再重定向(无论是否设置错误消息)。我还删除了任何可能导致问题的额外空格,以及关闭?>。
我还尝试在 catch 语句之前和之后进行重定向(以及删除 try/catch 块)
<?php
session_start();
$conn = new PDO('mysql:host=localhost;dbname=click2fit', 'db_username', 'DB_Password');
try {
$stmt = $conn->prepare('INSERT INTO customer_info (user_id, fname, lname)
VALUES(:user_id, :fname, :lname)');
$stmt->bindParam(':user_id', $user_id);
$stmt->bindParam(':fname', $_POST['fname'], PDO::PARAM_STR);
$stmt->bindParam(':lname', $_POST['lname'], PDO::PARAM_STR);
$stmt->execute();
header("location: page2.html");
exit();
} catch(PDOException $e) {
echo 'Error: ' . $e->getMessage();
}
配置.php:
<?php
$conn = new PDO('mysql:host=localhost;dbname=click2fit', 'db_username', 'DB_Password');
?>
打开错误报告的 config.php:
<?php
$salt = "XXXXXXXXXXXXXXXXXXX";
try {
$conn = new PDO('mysql:host=localhost;dbname=click2fit', 'db_username', 'DB_Password');
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e) {
echo 'ERROR: ' . $e->getMessage();
}