$message";
}
debug("开始数据库连接测试");
// 检查配置变量
if (!isset($host) || !isset($username) || !isset($password) || !isset($database)) {
debug("错误:配置文件加载失败,缺少必要的配置变量");
exit;
}
debug("配置信息检查通过:host=$host, database=$database, username=$username");
// 尝试连接数据库
try {
$pdo = new PDO("mysql:host=$host;dbname=$database;charset=utf8mb4", $username, $password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
debug("成功连接到数据库!");
// 检查vip_customers表是否存在
debug("检查vip_customers表是否存在");
$stmt = $pdo->query("SHOW TABLES LIKE 'vip_customers'");
$tableExists = $stmt->rowCount() > 0;
if ($tableExists) {
debug("vip_customers表存在");
// 检查表结构
debug("vip_customers表结构");
$stmt = $pdo->query("DESCRIBE vip_customers");
$columns = $stmt->fetchAll(PDO::FETCH_ASSOC);
echo "
";
echo "| 字段名 | 类型 | 空值 | 键 | 默认值 | 额外信息 |
";
foreach ($columns as $column) {
echo "";
echo "| {$column['Field']} | ";
echo "{$column['Type']} | ";
echo "{$column['Null']} | ";
echo "{$column['Key']} | ";
echo "{$column['Default']} | ";
echo "{$column['Extra']} | ";
echo "
";
}
echo "
";
// 检查数据量
debug("vip_customers表数据统计");
$stmt = $pdo->query("SELECT COUNT(*) as total FROM vip_customers");
$total = $stmt->fetchColumn();
debug("总记录数:$total");
// 检查激活的VIP客户数量
$stmt = $pdo->query("SELECT COUNT(*) as active FROM vip_customers WHERE is_active = 1");
$active = $stmt->fetchColumn();
debug("激活状态的VIP客户数:$active");
// 检查是否有测试手机号18699627661的记录
$stmt = $pdo->query("SELECT * FROM vip_customers WHERE phone LIKE '%18699627661%'");
$testPhoneExists = $stmt->rowCount() > 0;
debug("测试手机号18699627661存在:" . ($testPhoneExists ? "是" : "否"));
// 显示部分数据(最多5条)
debug("最近的VIP客户数据(最多5条)");
$stmt = $pdo->query("SELECT id, customer_name, phone, car_model, car_number, created_at FROM vip_customers ORDER BY created_at DESC LIMIT 5");
$recentVips = $stmt->fetchAll(PDO::FETCH_ASSOC);
if (count($recentVips) > 0) {
echo "";
echo "| ID | 客户姓名 | 手机号 | 车型 | 车牌号 | 创建时间 |
";
foreach ($recentVips as $vip) {
echo "";
echo "| {$vip['id']} | ";
echo "{$vip['customer_name']} | ";
echo "{$vip['phone']} | ";
echo "{$vip['car_model']} | ";
echo "{$vip['car_number']} | ";
echo "{$vip['created_at']} | ";
echo "
";
}
echo "
";
} else {
debug("vip_customers表中没有数据");
}
// 如果表中没有数据,提供创建示例数据的选项
if ($total == 0) {
debug("需要创建示例数据");
echo "";
}
} else {
debug("错误:vip_customers表不存在");
debug("需要创建vip_customers表");
echo "";
}
} catch(PDOException $e) {
debug("数据库连接失败:{$e->getMessage()}");
// 检查是否是数据库不存在的错误
if (strpos($e->getMessage(), 'Unknown database') !== false) {
debug("数据库不存在,需要创建");
echo "";
}
}
// 处理表单提交
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
// 创建数据库
if (isset($_POST['create_database'])) {
try {
// 先连接MySQL服务器,不指定数据库
$pdo_root = new PDO("mysql:host=$host;charset=utf8mb4", $username, $password);
$pdo_root->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// 创建数据库
$pdo_root->exec("CREATE DATABASE IF NOT EXISTS `$database` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci");
debug("数据库创建成功!");
// 重定向刷新页面
header("Location: test_db_connection.php");
exit;
} catch(PDOException $e) {
debug("创建数据库失败:{$e->getMessage()}");
}
}
// 创建表
if (isset($_POST['create_table'])) {
try {
$pdo = new PDO("mysql:host=$host;dbname=$database;charset=utf8mb4", $username, $password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// 创建vip_customers表
$createTableSQL = "
CREATE TABLE IF NOT EXISTS vip_customers (
id INT AUTO_INCREMENT PRIMARY KEY,
customer_name VARCHAR(100) NOT NULL,
phone VARCHAR(20) NOT NULL UNIQUE,
car_model VARCHAR(100),
car_number VARCHAR(50),
email VARCHAR(100),
birthday DATE,
is_active TINYINT DEFAULT 1,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
";
$pdo->exec($createTableSQL);
debug("vip_customers表创建成功!");
// 重定向刷新页面
header("Location: test_db_connection.php");
exit;
} catch(PDOException $e) {
debug("创建表失败:{$e->getMessage()}");
}
}
// 创建示例数据
if (isset($_POST['create_sample_data'])) {
try {
$pdo = new PDO("mysql:host=$host;dbname=$database;charset=utf8mb4", $username, $password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// 插入示例VIP客户数据
$sampleData = [
['张三', '18612345678', '奔驰C级', '京A12345', 'zhangsan@example.com'],
['李四', '13987654321', '宝马3系', '京B54321', 'lisi@example.com'],
['王五', '18699627661', '奥迪A4', '沪A12345', 'wangwu@example.com'],
['赵六', '18699627777', '特斯拉Model 3', '深A67890', 'zhaoliu@example.com'],
['钱七', '13812345678', '丰田凯美瑞', '广A12345', 'qianqi@example.com']
];
$stmt = $pdo->prepare("INSERT INTO vip_customers (customer_name, phone, car_model, car_number, email) VALUES (?, ?, ?, ?, ?)");
foreach ($sampleData as $data) {
$stmt->execute($data);
}
debug("示例VIP客户数据创建成功!");
// 重定向刷新页面
header("Location: test_db_connection.php");
exit;
} catch(PDOException $e) {
debug("创建示例数据失败:{$e->getMessage()}");
}
}
}
?>