Files
zyt/server/public/test_db_connection.php
2026-03-23 18:02:16 +08:00

71 lines
2.3 KiB
PHP

<?php
/**
* 测试数据库连接和表结构
*/
require __DIR__ . '/../vendor/autoload.php';
$app = new think\App();
$app->initialize();
$db = \think\facade\Db::connect();
echo "<h2>数据库连接信息</h2>";
$config = config('database');
echo "<pre>";
echo "数据库类型: " . $config['default'] . "\n";
echo "主机: " . $config['connections'][$config['default']]['hostname'] . "\n";
echo "数据库名: " . $config['connections'][$config['default']]['database'] . "\n";
echo "表前缀: " . $config['connections'][$config['default']]['prefix'] . "\n";
echo "</pre>";
echo "<h2>直接SQL查询表结构</h2>";
try {
$columns = $db->query("SHOW COLUMNS FROM zyt_tcm_prescription");
echo "<table border='1' cellpadding='5'>";
echo "<tr><th>字段名</th><th>类型</th><th>默认值</th><th>注释</th></tr>";
foreach ($columns as $col) {
$highlight = in_array($col['Field'], ['usage_time', 'usage_way', 'dietary_taboo', 'usage_notes']) ? 'background: yellow;' : '';
echo "<tr style='$highlight'>";
echo "<td>{$col['Field']}</td>";
echo "<td>{$col['Type']}</td>";
echo "<td>{$col['Default']}</td>";
echo "<td>" . ($col['Comment'] ?? '') . "</td>";
echo "</tr>";
}
echo "</table>";
} catch (\Exception $e) {
echo "<p style='color: red;'>错误: " . $e->getMessage() . "</p>";
}
echo "<h2>使用PDO直接查询</h2>";
try {
$pdo = new PDO(
"mysql:host=127.0.0.1;dbname=zyt;charset=utf8mb4",
"root",
"root"
);
$stmt = $pdo->query("SELECT id, usage_time, usage_way, dietary_taboo, usage_notes FROM zyt_tcm_prescription LIMIT 1");
$result = $stmt->fetch(PDO::FETCH_ASSOC);
echo "<pre>";
print_r($result);
echo "</pre>";
echo "<p style='color: green;'>✓ PDO查询成功!</p>";
} catch (\Exception $e) {
echo "<p style='color: red;'>✗ PDO查询失败: " . $e->getMessage() . "</p>";
}
echo "<h2>使用ThinkPHP Db类查询</h2>";
try {
$result = $db->query("SELECT id, usage_time, usage_way, dietary_taboo, usage_notes FROM zyt_tcm_prescription LIMIT 1");
echo "<pre>";
print_r($result);
echo "</pre>";
echo "<p style='color: green;'>✓ ThinkPHP Db查询成功!</p>";
} catch (\Exception $e) {
echo "<p style='color: red;'>✗ ThinkPHP Db查询失败: " . $e->getMessage() . "</p>";
}
?>