0eb0cf12fb
移除不再需要的测试脚本、调试页面和解决方案文档,包括: - 各种测试PHP文件(test.php, test_filters.php等) - VIP功能测试和调试页面(test_vip*.php, vip_debug_page.html等) - 数据库连接测试脚本(test_db_connection.php) - 解决方案文档(SOLUTIONS.md, VIP_*_Report.md)
159 lines
8.2 KiB
PHP
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>';
|
|
}
|
|
}
|
|
|
|
// 输出脚本结束
|
|
?>
|