使用的是大佬YMXuan的数据库
可以自己架设到本地,或者用免费的服务器跑也行,比如sevr00这类的,
PHP版本7.0以上即可。兼容手机端显示查询。
使用方法:将数据库文件drugs.db 和PHP文件放在同一目录即可。
我用作者原版数据库文件 可能后续他修改了,导致部分人提示
“数据库查询失败:“SQLSTATEIHY000] General error: 1 no such column: 批准文号”
作者原版数据库文件网盘链接见附件
- <?php
- /**
- * 药品数据库查询系统 - 智能组合搜索版
- * 使用说明:
- * 1. 将此文件保存为 index.php
- * 2. 将 drugs.db 放在同一目录
- * 3. 支持空格分隔多关键词组合搜索
- */
- // 数据库配置
- define('DB_PATH', __DIR__ . '/drugs.db');
- // 错误处理
- error_reporting(E_ALL);
- ini_set('display_errors', 0);
- // 处理查询请求
- $results = [];
- $error = '';
- $query_info = '';
- $search_term = '';
- $search_type = 'smart';
- if ($_SERVER['REQUEST_METHOD'] === 'POST') {
- $search_term = trim($_POST['search_term'] ?? '');
- $search_type = $_POST['search_type'] ?? 'smart';
- if (!empty($search_term)) {
- try {
- $pdo = new PDO('sqlite:' . DB_PATH);
- $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
- $pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
- // 智能搜索:支持空格分隔的多关键词组合
- $keywords = array_filter(explode(' ', $search_term));
- if ($search_type === 'smart' && count($keywords) > 1) {
- // 多关键词组合搜索:所有关键词都必须在某个字段中出现
- $conditions = [];
- $params = [];
- foreach ($keywords as $idx => $keyword) {
- $param_name = "keyword{$idx}";
- $conditions[] = "(通用名称 LIKE :{$param_name} OR
- 商品名称 LIKE :{$param_name} OR
- 生产企业 LIKE :{$param_name} OR
- 批准文号 LIKE :{$param_name} OR
- 相关疾病 LIKE :{$param_name} OR
- 适应症 LIKE :{$param_name})";
- $params[$param_name] = "%{$keyword}%";
- }
- $sql = "SELECT * FROM drug_info WHERE " . implode(' AND ', $conditions);
- $sql .= " ORDER BY 通用名称, 生产企业 LIMIT 100";
- $query_info = "智能组合搜索(" . count($keywords) . " 个关键词):"" . $search_term . """;
- } else {
- // 单关键词或指定字段搜索
- $keyword = $keywords[0];
- switch ($search_type) {
- case 'generic_name':
- $sql = "SELECT * FROM drug_info WHERE 通用名称 LIKE :term ORDER BY 通用名称, 生产企业";
- $query_info = "通用名称";
- break;
- case 'trade_name':
- $sql = "SELECT * FROM drug_info WHERE 商品名称 LIKE :term ORDER BY 商品名称, 生产企业";
- $query_info = "商品名称";
- break;
- case 'manufacturer':
- $sql = "SELECT * FROM drug_info WHERE 生产企业 LIKE :term ORDER BY 生产企业, 通用名称";
- $query_info = "生产企业";
- break;
- case 'approval_number':
- $sql = "SELECT * FROM drug_info WHERE 批准文号 LIKE :term ORDER BY 批准文号";
- $query_info = "批准文号";
- break;
- default:
- // 智能模式单关键词:搜索所有主要字段
- $sql = "SELECT * FROM drug_info WHERE
- 通用名称 LIKE :term OR
- 商品名称 LIKE :term OR
- 生产企业 LIKE :term OR
- 批准文号 LIKE :term OR
- 相关疾病 LIKE :term OR
- 适应症 LIKE :term
- ORDER BY 通用名称, 生产企业";
- $query_info = "智能搜索";
- }
- $sql .= " LIMIT 100";
- $params = ['term' => "%{$keyword}%"];
- $query_info .= " 包含 "{$keyword}"";
- }
- $stmt = $pdo->prepare($sql);
- $stmt->execute($params);
- $results = $stmt->fetchAll();
- $query_info .= " 的药品,共找到 " . count($results) . " 条结果";
- } catch (PDOException $e) {
- $error = "数据库查询失败: " . $e->getMessage();
- }
- } else {
- $error = "请输入查询关键词";
- }
- }
- // 获取数据库统计信息
- $db_stats = '';
- try {
- $pdo = new PDO('sqlite:' . DB_PATH);
- $stmt = $pdo->query("SELECT COUNT(*) as total FROM drug_info");
- $total = $stmt->fetch()['total'];
- $db_stats = "数据库共收录 {$total} 条药品信息";
- } catch (PDOException $e) {
- $db_stats = "无法连接数据库";
- }
- // 辅助函数:安全输出
- function safe_output($value) {
- return !empty($value) && $value !== '-' ? nl2br(htmlspecialchars($value)) : '<span style="color: #bbb;">暂无</span>';
- }
- ?>
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="UTF-8">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <title>药品数据库查询系统</title>
- <style>
- * {
- margin: 0;
- padding: 0;
- box-sizing: border-box;
- }
- body {
- font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Microsoft YaHei", sans-serif;
- background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
- min-height: 100vh;
- padding: 20px;
- }
- .container {
- max-width: 1400px;
- margin: 0 auto;
- }
- .header {
- background: white;
- border-radius: 10px;
- padding: 25px 30px;
- margin-bottom: 20px;
- box-shadow: 0 10px 30px rgba(0,0,0,0.2);
- }
- h1 {
- color: #667eea;
- margin-bottom: 8px;
- font-size: 26px;
- }
- .db-stats {
- color: #666;
- font-size: 14px;
- }
- .search-box {
- background: white;
- border-radius: 10px;
- padding: 25px 30px;
- margin-bottom: 20px;
- box-shadow: 0 10px 30px rgba(0,0,0,0.2);
- }
- .search-hint {
- color: #667eea;
- font-size: 13px;
- margin-bottom: 15px;
- padding: 10px;
- background: #f0f4ff;
- border-radius: 5px;
- border-left: 3px solid #667eea;
- }
- .search-form {
- display: flex;
- gap: 10px;
- flex-wrap: wrap;
- }
- .search-type {
- padding: 12px;
- border: 2px solid #e0e0e0;
- border-radius: 5px;
- font-size: 15px;
- flex: 0 0 140px;
- background: white;
- }
- .search-input {
- padding: 12px;
- border: 2px solid #e0e0e0;
- border-radius: 5px;
- font-size: 15px;
- flex: 1;
- min-width: 250px;
- }
- .search-input:focus {
- outline: none;
- border-color: #667eea;
- }
- .search-btn {
- padding: 12px 30px;
- background: #667eea;
- color: white;
- border: none;
- border-radius: 5px;
- font-size: 15px;
- cursor: pointer;
- transition: background 0.3s;
- font-weight: 500;
- }
- .search-btn:hover {
- background: #5568d3;
- }
- .message {
- background: white;
- border-radius: 10px;
- padding: 15px 20px;
- margin-bottom: 20px;
- box-shadow: 0 5px 15px rgba(0,0,0,0.1);
- }
- .error {
- background: #fee;
- color: #c33;
- border-left: 4px solid #c33;
- }
- .info {
- background: #e7f3ff;
- color: #0066cc;
- border-left: 4px solid #0066cc;
- }
- .results {
- background: white;
- border-radius: 10px;
- padding: 20px;
- box-shadow: 0 10px 30px rgba(0,0,0,0.2);
- }
- .drug-card {
- border: 1px solid #ddd;
- border-radius: 8px;
- margin-bottom: 20px;
- overflow: hidden;
- transition: all 0.3s;
- background: #fafafa;
- }
- .drug-card:hover {
- border-color: #667eea;
- box-shadow: 0 4px 15px rgba(102, 126, 234, 0.15);
- }
- /* 核心信息区 */
- .drug-header {
- background: white;
- padding: 20px 25px;
- border-bottom: 2px solid #f0f0f0;
- }
- .drug-title-row {
- display: flex;
- align-items: baseline;
- gap: 15px;
- margin-bottom: 15px;
- flex-wrap: wrap;
- }
- .drug-generic-name {
- font-size: 22px;
- font-weight: bold;
- color: #333;
- }
- .drug-trade-name {
- font-size: 16px;
- color: #667eea;
- font-weight: 500;
- }
- .drug-badges {
- display: flex;
- gap: 8px;
- flex-wrap: wrap;
- }
- .badge {
- display: inline-block;
- padding: 4px 12px;
- background: #f0f0f0;
- border-radius: 4px;
- font-size: 12px;
- color: #666;
- }
- .badge.primary {
- background: #e7f3ff;
- color: #0066cc;
- }
- /* 基础信息网格 */
- .basic-info-grid {
- display: grid;
- grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
- gap: 12px;
- padding: 20px 25px;
- background: white;
- }
- .info-row {
- display: flex;
- gap: 10px;
- font-size: 14px;
- line-height: 1.6;
- }
- .info-label {
- font-weight: 600;
- color: #555;
- min-width: 80px;
- flex-shrink: 0;
- }
- .info-value {
- color: #333;
- flex: 1;
- }
- /* 详细说明区 */
- .drug-details {
- padding: 20px 25px;
- background: white;
- }
- .detail-block {
- margin-bottom: 20px;
- padding-bottom: 20px;
- border-bottom: 1px solid #f0f0f0;
- }
- .detail-block:last-child {
- border-bottom: none;
- margin-bottom: 0;
- padding-bottom: 0;
- }
- .detail-title {
- font-weight: bold;
- color: #667eea;
- margin-bottom: 8px;
- font-size: 15px;
- }
- .detail-content {
- color: #555;
- line-height: 1.8;
- font-size: 14px;
- }
- .section-divider {
- height: 2px;
- background: #f0f0f0;
- margin: 0;
- }
- .no-results {
- text-align: center;
- padding: 40px;
- color: #999;
- font-size: 16px;
- }
- @media (max-width: 768px) {
- .basic-info-grid {
- grid-template-columns: 1fr;
- }
- }
- @media print {
- body {
- background: white;
- }
- .search-box, .header {
- display: none;
- }
- }
- </style>
- </head>
- <body>
- <div>
- <div>
- <h1>药品数据库查询系统</h1>
- <div><?php echo htmlspecialchars($db_stats); ?></div>
- </div>
- <div>
- <div>
- 💡 <strong>智能搜索提示:</strong>输入多个关键词用空格分隔,如 "阿莫西林 进口"、"布洛芬 儿童",系统将自动组合匹配
- </div>
- <form method="POST">
- <select name="search_type">
- <option value="smart" <?php echo $search_type === 'smart' ? 'selected' : ''; ?>>智能搜索</option>
- <option value="generic_name" <?php echo $search_type === 'generic_name' ? 'selected' : ''; ?>>通用名称</option>
- <option value="trade_name" <?php echo $search_type === 'trade_name' ? 'selected' : ''; ?>>商品名称</option>
- <option value="manufacturer" <?php echo $search_type === 'manufacturer' ? 'selected' : ''; ?>>生产企业</option>
- <option value="approval_number" <?php echo $search_type === 'approval_number' ? 'selected' : ''; ?>>批准文号</option>
- </select>
- <input type="text" name="search_term"
- placeholder="如:阿莫西林 进口"
- value="<?php echo htmlspecialchars($search_term); ?>" required>
- <button type="submit">🔍 查询</button>
- </form>
- </div>
- <?php if ($error): ?>
- <div class="message error">
- ❌ <?php echo htmlspecialchars($error); ?>
- </div>
- <?php endif; ?>
- <?php if ($query_info): ?>
- <div class="message info">
- ℹ️ <?php echo htmlspecialchars($query_info); ?>
- </div>
- <?php endif; ?>
- <?php if (!empty($results)): ?>
- <div>
- <?php foreach ($results as $drug): ?>
- <div>
- <!-- 核心信息区 -->
- <div>
- <div>
- <span>
- <?php echo htmlspecialchars($drug['通用名称'] ?? '未知药品'); ?>
- </span>
- <?php if (!empty($drug['商品名称'])): ?>
- <span>
- [<?php echo htmlspecialchars($drug['商品名称']); ?>]
- </span>
- <?php endif; ?>
- </div>
- <div>
- <?php if (!empty($drug['药品性质'])): ?>
- <span class="badge primary"><?php echo htmlspecialchars($drug['药品性质']); ?></span>
- <?php endif; ?>
- <?php if (!empty($drug['药品分类'])): ?>
- <span><?php echo htmlspecialchars($drug['药品分类']); ?></span>
- <?php endif; ?>
- </div>
- </div>
- <!-- 基础信息网格 -->
- <div>
- <div>
- <span>生产企业</span>
- <span><?php echo safe_output($drug['生产企业']); ?></span>
- </div>
- <div>
- <span>批准文号</span>
- <span><?php echo safe_output($drug['批准文号']); ?></span>
- </div>
- <div>
- <span>规格</span>
- <span><?php echo safe_output($drug['规格']); ?></span>
- </div>
- <div>
- <span>汉语拼音</span>
- <span><?php echo safe_output($drug['汉语拼音']); ?></span>
- </div>
- <div>
- <span>贮藏</span>
- <span><?php echo safe_output($drug['贮藏']); ?></span>
- </div>
- <div>
- <span>有效期</span>
- <span><?php echo safe_output($drug['有效期']); ?></span>
- </div>
- <?php if (!empty($drug['相关疾病'])): ?>
- <div>
- <span>相关疾病</span>
- <span><?php echo safe_output($drug['相关疾病']); ?></span>
- </div>
- <?php endif; ?>
- <?php if (!empty($drug['性状'])): ?>
- <div>
- <span>性状</span>
- <span><?php echo safe_output($drug['性状']); ?></span>
- </div>
- <?php endif; ?>
- </div>
- <div></div>
- <!-- 详细说明区 -->
- <div>
- <?php if (!empty($drug['主要成份'])): ?>
- <div>主要成份</div>
- <div><?php echo safe_output($drug['主要成份']); ?></div>
- </div>
- <?php endif; ?>
- <?php if (!empty($drug['适应症'])): ?>
- <div>
- <div>适应症</div>
- <div><?php echo safe_output($drug['适应症']); ?></div>
- </div>
- <?php endif; ?>
- <?php if (!empty($drug['用法用量'])): ?>
- <div>
- <div>用法用量</div>
- <div><?php echo safe_output($drug['用法用量']); ?></div>
- </div>
- <?php endif; ?>
- <?php if (!empty($drug['不良反应'])): ?>
- <div>
- <div>不良反应</div>
- <div><?php echo safe_output($drug['不良反应']); ?></div>
- </div>
- <?php endif; ?>
- <?php if (!empty($drug['禁忌'])): ?>
- <div>
- <div>禁忌</div>
- <div><?php echo safe_output($drug['禁忌']); ?></div>
- </div>
- <?php endif; ?>
- <?php if (!empty($drug['注意事项'])): ?>
- <div>
- <div>注意事项</div>
- <div><?php echo safe_output($drug['注意事项']); ?></div>
- </div>
- <?php endif; ?>
- <?php if (!empty($drug['孕妇及哺乳期妇女用药'])): ?>
- <div>
- <div>孕妇及哺乳期妇女用药</div>
- <div><?php echo safe_output($drug['孕妇及哺乳期妇女用药']); ?></div>
- </div>
- <?php endif; ?>
- <?php if (!empty($drug['儿童用药'])): ?>
- <div>
- <div>儿童用药</div>
- <div><?php echo safe_output($drug['儿童用药']); ?></div>
- </div>
- <?php endif; ?>
- <?php if (!empty($drug['老人用药'])): ?>
- <div>
- <div>老人用药</div>
- <div><?php echo safe_output($drug['老人用药']); ?></div>
- </div>
- <?php endif; ?>
- <?php if (!empty($drug['药物相互作用'])): ?>
- <div>
- <div>药物相互作用</div>
- <div><?php echo safe_output($drug['药物相互作用']); ?></div>
- </div>
- <?php endif; ?>
- <?php if (!empty($drug['药理毒理'])): ?>
- <div>
- <div>药理毒理</div>
- <div><?php echo safe_output($drug['药理毒理']); ?></div>
- </div>
- <?php endif; ?>
- <?php if (!empty($drug['药代动力学'])): ?>
- <div>
- <div>药代动力学</div>
- <div><?php echo safe_output($drug['药代动力学']); ?></div>
- </div>
- <?php endif; ?>
- </div>
- </div>
- <?php endforeach; ?>
- </div>
- <?php elseif ($_SERVER['REQUEST_METHOD'] === 'POST' && empty($error)): ?>
- <div>
- <div>😕 未找到符合条件的药品信息</div>
- </div>
- <?php endif; ?>
- </div>
- </body>
- </html>
作者原版数据库文件网盘链接:
- THE END -

下载地址
同类软件
onenav导航源码一为主题wordpres主题工具箱主题模板网站源码搭建
更新时间: 2025-10-14药品说明书查询软件网页PHP版本
更新时间: 2025-10-14seo优化提高网站收录排名百度API接口网站推送提交工具php版源码
更新时间: 2025-10-14getapp影视APP源码 反编译APP附教程
更新时间: 2025-10-14钉钉提醒业务系统源码,网站定时钉钉提醒业务系统
更新时间: 2025-10-14爱授权系统接入QQ互联插件开源版
更新时间: 2025-10-14呆错网址网站在线导航系统 PHP网站主题源码 ThinkPHP+Sqlite3
更新时间: 2025-10-14易支付 全网最新版本
更新时间: 2025-10-14风驰标书文档两两互比查重系统2.0
更新时间: 2025-10-14网易云信即时通讯源码
更新时间: 2025-10-14