This repository has been archived on 2026-06-20. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
carwash_order/test/debug_vip_db.php
T
wsh5485 0eb0cf12fb chore: 删除测试和调试相关文件
移除不再需要的测试脚本、调试页面和解决方案文档,包括:
- 各种测试PHP文件(test.php, test_filters.php等)
- VIP功能测试和调试页面(test_vip*.php, vip_debug_page.html等)
- 数据库连接测试脚本(test_db_connection.php)
- 解决方案文档(SOLUTIONS.md, VIP_*_Report.md)
2025-12-05 01:38:06 +08:00

159 lines
8.2 KiB
PHP

<?php
// 调试脚本:验证数据库连接和VIP客户数据
header('Content-Type: text/html; charset=utf-8');
// 引入配置文件
require_once 'config.php';
// 确保配置变量存在
if (!isset($host) || !isset($username) || !isset($password) || !isset($database)) {
die('配置文件加载失败:无法读取数据库配置信息');
}
echo '<h2>VIP客户数据库调试</h2>';
echo '<h3>1. 配置信息</h3>';
echo '主机: ' . htmlspecialchars($host) . '<br>';
echo '数据库: ' . htmlspecialchars($database) . '<br>';
echo '用户名: ' . htmlspecialchars($username) . '<br>';
echo '<h3>2. 数据库连接测试</h3>';
try {
$pdo = new PDO("mysql:host=$host;dbname=$database;charset=utf8mb4", $username, $password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo '<span style="color: green;">✅ 数据库连接成功</span><br>';
// 查询表是否存在
echo '<h3>3. 检查VIP表是否存在</h3>';
$checkTable = $pdo->query("SHOW TABLES LIKE 'vip_customers'");
if ($checkTable->rowCount() > 0) {
echo '<span style="color: green;">✅ 表 vip_customers 存在</span><br>';
// 查询表结构
echo '<h3>4. VIP表结构</h3>';
$describeTable = $pdo->query("DESCRIBE vip_customers");
echo '<table border="1" cellpadding="5" cellspacing="0"><tr><th>字段名</th><th>类型</th><th>空值</th><th>键</th><th>默认值</th><th>额外</th></tr>';
while ($row = $describeTable->fetch(PDO::FETCH_ASSOC)) {
echo '<tr>';
echo '<td>' . htmlspecialchars($row['Field']) . '</td>';
echo '<td>' . htmlspecialchars($row['Type']) . '</td>';
echo '<td>' . htmlspecialchars($row['Null']) . '</td>';
echo '<td>' . htmlspecialchars($row['Key']) . '</td>';
echo '<td>' . htmlspecialchars($row['Default'] ?? '') . '</td>';
echo '<td>' . htmlspecialchars($row['Extra'] ?? '') . '</td>';
echo '</tr>';
}
echo '</table>';
// 查询VIP客户数据 - 活跃状态
echo '<h3>5. 活跃VIP客户数据 (is_active=1)</h3>';
$activeVips = $pdo->query("SELECT id, customer_name, phone, car_model, car_number, email, birthday, is_active FROM vip_customers WHERE is_active = 1 ORDER BY created_at DESC");
$activeVipCount = $activeVips->rowCount();
echo '活跃VIP客户数量: ' . $activeVipCount . '<br>';
if ($activeVipCount > 0) {
echo '<table border="1" cellpadding="5" cellspacing="0"><tr><th>ID</th><th>姓名</th><th>手机号</th><th>车型</th><th>车牌号</th><th>邮箱</th><th>生日</th><th>状态</th></tr>';
while ($vip = $activeVips->fetch(PDO::FETCH_ASSOC)) {
echo '<tr>';
echo '<td>' . htmlspecialchars($vip['id']) . '</td>';
echo '<td>' . htmlspecialchars($vip['customer_name']) . '</td>';
echo '<td>' . htmlspecialchars($vip['phone']) . '</td>';
echo '<td>' . htmlspecialchars($vip['car_model']) . '</td>';
echo '<td>' . htmlspecialchars($vip['car_number']) . '</td>';
echo '<td>' . htmlspecialchars($vip['email']) . '</td>';
echo '<td>' . htmlspecialchars($vip['birthday']) . '</td>';
echo '<td>' . ($vip['is_active'] ? '活跃' : '非活跃') . '</td>';
echo '</tr>';
}
echo '</table>';
}
// 查询所有VIP客户数据(包括非活跃)
echo '<h3>6. 所有VIP客户数据(包括非活跃)</h3>';
$allVips = $pdo->query("SELECT id, customer_name, phone, car_model, car_number, email, birthday, is_active FROM vip_customers ORDER BY created_at DESC");
$allVipCount = $allVips->rowCount();
echo '总VIP客户数量: ' . $allVipCount . '<br>';
if ($allVipCount > 0) {
echo '<table border="1" cellpadding="5" cellspacing="0"><tr><th>ID</th><th>姓名</th><th>手机号</th><th>车型</th><th>车牌号</th><th>邮箱</th><th>生日</th><th>状态</th></tr>';
while ($vip = $allVips->fetch(PDO::FETCH_ASSOC)) {
echo '<tr>';
echo '<td>' . htmlspecialchars($vip['id']) . '</td>';
echo '<td>' . htmlspecialchars($vip['customer_name']) . '</td>';
echo '<td>' . htmlspecialchars($vip['phone']) . '</td>';
echo '<td>' . htmlspecialchars($vip['car_model']) . '</td>';
echo '<td>' . htmlspecialchars($vip['car_number']) . '</td>';
echo '<td>' . htmlspecialchars($vip['email']) . '</td>';
echo '<td>' . htmlspecialchars($vip['birthday']) . '</td>';
echo '<td>' . ($vip['is_active'] ? '活跃' : '非活跃') . '</td>';
echo '</tr>';
}
echo '</table>';
}
// 尝试查询用户提供的手机号
$userPhone = '18699627661';
echo '<h3>7. 查询特定手机号: ' . htmlspecialchars($userPhone) . '</h3>';
$stmt = $pdo->prepare("SELECT id, customer_name, phone, car_model, car_number, is_active FROM vip_customers WHERE phone = :phone");
$stmt->execute(['phone' => $userPhone]);
$specificVip = $stmt->fetch(PDO::FETCH_ASSOC);
if ($specificVip) {
echo '<span style="color: green;">✅ 找到匹配的VIP客户</span><br>';
echo '姓名: ' . htmlspecialchars($specificVip['customer_name']) . '<br>';
echo '手机号: ' . htmlspecialchars($specificVip['phone']) . '<br>';
echo '车型: ' . htmlspecialchars($specificVip['car_model']) . '<br>';
echo '车牌号: ' . htmlspecialchars($specificVip['car_number']) . '<br>';
echo '状态: ' . ($specificVip['is_active'] ? '活跃' : '非活跃') . '<br>';
} else {
echo '<span style="color: red;">❌ 未找到该手机号的VIP客户</span><br>';
}
// 模拟get_vip_customers.php的JSON响应
echo '<h3>8. 模拟get_vip_customers.php的JSON响应</h3>';
$vipCustomers = $pdo->query("SELECT id, customer_name, phone, car_model, car_number, email, birthday, is_active FROM vip_customers WHERE is_active = 1 ORDER BY created_at DESC")->fetchAll(PDO::FETCH_ASSOC);
echo '<pre>';
echo htmlspecialchars(json_encode($vipCustomers, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT));
echo '</pre>';
} else {
echo '<span style="color: red;">❌ 表 vip_customers 不存在</span><br>';
// 列出所有表
echo '数据库中的所有表:<br>';
$tables = $pdo->query("SHOW TABLES");
while ($table = $tables->fetch(PDO::FETCH_NUM)) {
echo '- ' . htmlspecialchars($table[0]) . '<br>';
}
}
} catch(PDOException $e) {
echo '<span style="color: red;">❌ 数据库连接失败</span><br>';
echo '错误信息: ' . htmlspecialchars($e->getMessage()) . '<br>';
}
// 添加插入测试数据的功能
echo '<h3>9. 插入测试VIP数据</h3>';
echo '<form method="post" action="">';
echo '<input type="hidden" name="insert_test_data" value="1">';
echo '<button type="submit">插入测试VIP数据</button>';
echo '</form>';
if (isset($_POST['insert_test_data'])) {
try {
$pdo = new PDO("mysql:host=$host;dbname=$database;charset=utf8mb4", $username, $password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// 插入用户提到的手机号作为测试数据
$stmt = $pdo->prepare("INSERT INTO vip_customers (customer_name, phone, car_model, car_number, email, birthday, notes, is_active) VALUES (?, ?, ?, ?, ?, ?, ?, ?)");
$stmt->execute(['测试用户', '18699627661', '测试车型', '测试车牌', 'test@example.com', '1990-01-01', '测试数据,用于验证搜索功能', 1]);
echo '<span style="color: green;">✅ 测试数据插入成功</span><br>';
echo '已插入VIP客户: 测试用户 (18699627661)<br>';
} catch(PDOException $e) {
echo '<span style="color: red;">❌ 数据插入失败</span><br>';
echo '错误信息: ' . htmlspecialchars($e->getMessage()) . '<br>';
}
}
// 输出脚本结束
?>