<?php try { $dsn = "mysql:host=your_host;dbname=your_db;charset=utf8mb4"; $options = [ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, PDO::ATTR_EMULATE_PREPARES => false ]; $pdo = new PDO($dsn, 'db_user', 'db_password', $options); // 示例查询(使用预处理语句防止SQL注入) $stmt = $pdo->prepare("SELECT * FROM users WHERE email = :email"); $stmt->execute(['email' => $user_input]); $result = $stmt->fetchAll(); // 使用后关闭连接 $pdo = null; } catch (PDOException $e) { error_log("Database Error: " . $e->getMessage()); exit('系统维护中,请稍后访问'); } ?>
安全要点
import asyncpg import asyncio async def get_db_connection(): try: conn = await asyncpg.connect( user='db_user', password='db_password', database='your_db', host='your_host', port=5432, timeout=10 ) # 参数化查询示例 rows = await conn.fetch( 'SELECT * FROM products WHERE category = $1', user_category ) await conn.close() return rows except Exception as e: print(f"Database connection failed: {e}") raise
优化策略
@Configuration @EnableMongoRepositories public class MongoConfig extends AbstractMongoClientConfiguration { @Value("${spring.data.mongodb.uri}") private String connectionString; @Override public MongoClient mongoClient() { return MongoClients.create(connectionString); } @Override protected String getDatabaseName() { return "production_db"; } // 查询示例(使用MongoTemplate) @Autowired private MongoTemplate mongoTemplate; public List<User> findActiveUsers() { Query query = new Query(); query.addCriteria(Criteria.where("status").is("active")); return mongoTemplate.find(query, User.class); } }
企业级规范
现象 | 检查点 | 工具建议 |
---|---|---|
连接超时 | 防火墙规则 DNS解析状态 最大连接数限制 |
telnet nslookup |
认证失败 | 密码加密方式 权限白名单 特殊字符转义 |
pgAdmin MySQL Workbench |
性能下降 | 慢查询日志 索引命中率 连接泄漏检测 |
EXPLAIN ANALYZE Prometheus |
引用说明
本文技术方案参考:
(全文完)