在 Debian 上用 PHP 连接数据库,通常分 MySQL/MariaDB 和 PostgreSQL 两种常见情况。下面以最常用、最推荐的 PDO 方式说明,并附带环境准备步骤。
sudo apt update
sudo apt upgrade -y
sudo apt install php php-cli php-fpm -y
sudo apt install php-mysql -y
sudo apt install php-pgsql -y
sudo systemctl restart apache2
# 或
sudo systemctl restart php8.2-fpm
CREATE DATABASE testdb;
CREATE USER 'testuser'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON testdb.* TO 'testuser'@'localhost';
FLUSH PRIVILEGES;
<?php
$host = 'localhost';
$db = 'testdb';
$user = 'testuser';
$pass = 'password';
$charset = 'utf8mb4';
$dsn = "mysql:host=$host;dbname=$db;charset=$charset";
try {
$pdo = new PDO($dsn, $user, $pass);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "数据库连接成功";
} catch (PDOException $e) {
echo "连接失败: " . $e->getMessage();
}
<?php
$host = 'localhost';
$db = 'testdb';
$user = 'testuser';
$pass = 'password';
$dsn = "pgsql:host=$host;dbname=$db";
try {
$pdo = new PDO($dsn, $user, $pass);
echo "PostgreSQL 连接成功";
} catch (PDOException $e) {
echo "连接失败: " . $e->getMessage();
}
php -m | grep pdo
没有 pdo_mysql 或 pdo_pgsql 就重装扩展。
localhostsudo apt install libapache2-mod-phpphp-fpm✅ 用 PDO(支持预处理,防 SQL 注入)
❌ 不推荐 mysql_* 旧函数(已废弃)
如果你用的是 Apache / Nginx / Docker / Laravel,或者连接的是 远程数据库,可以告诉我,我可以给你更具体的配置。