php连接mysql需启用mysqli或pdo扩展,用new mysqli()或new pdo()建立连接,检查错误并显式关闭;禁用已废弃的mysql_connect(),注意dsn格式、空密码引号及localhost/127.0.0.1差异。

PHP本身没有“标签”概念,你实际想问的是:在PHP代码中写什么语句、加哪些必要结构,才能正确连接MySQL数据库。关键不在“加标签”,而在写对连接逻辑、启用对应扩展、处理错误和资源释放。
确保PHP已启用mysqli或PDO扩展
这是最基础的前提,没启用就根本调用不了连接函数:
- 打开php.ini文件,确认以下两行未被注释(前面没有分号
;):
extension=mysqliextension=pdo_mysql
- 如果用PDO,还需确保
extension=pdo也已启用; - 改完后重启Web服务器(如Apache或Nginx),再用
phpinfo()页面确认扩展是否加载成功。
用mysqli面向对象方式写连接代码
这是目前最常用、结构清晰、推荐新手上手的方式:
- 用
new mysqli()创建连接对象,传入主机、用户名、密码、数据库名、端口(可选); - 必须检查
$conn->connect_error,不为空说明连接失败; - 操作完成后调用
$conn->close()显式关闭连接(虽脚本结束会自动释放,但显式更稳妥)。
示例代码:
<?php <br>
$host = 'localhost';<br>
$user = 'root';<br>
$pass = '123456';<br>
$db = 'testdb';<br><br>
$conn = new mysqli($host, $user, $pass, $db);<br>
if ($conn->connect_error) {<br>
die('连接失败:' . $conn->connect_error);<br>
}<br>
echo '已连接到MySQL数据库';<br>
$conn->close();<br>
?>
用PDO方式写连接代码(适合需要扩展性或安全要求高)
PDO支持异常模式和预处理,更适合现代项目:
- DSN字符串格式要写对:
mysql:host=localhost;dbname=testdb;charset=utf8mb4; - 必须设置
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,否则错误不会抛出; - 连接对象销毁时自动关闭,但建议手动置为
null释放引用。
示例代码:
<?php <br>
$dsn = 'mysql:host=localhost;dbname=testdb;charset=utf8mb4';<br>
$user = 'root';<br>
$pass = '123456';<br><br>
try {<br>
$pdo = new PDO($dsn, $user, $pass, [<br>
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION<br>
]);<br>
echo 'PDO连接成功';<br>
} catch (PDOException $e) {<br>
die('连接失败:' . $e->getMessage());<br>
}<br>
$pdo = null;<br>
?>
别踩这些常见坑
很多“连不上”问题其实和语法无关,而是环境或配置疏漏:
-
不要用
mysql_connect():该函数自PHP 7.0起已彻底移除,写了会报致命错误; -
密码为空时别漏写引号:如
$pass = '',不是省略参数; -
数据库名不是必须项:首次连接可不指定,之后用
$conn->select_db('name')切换; -
本地连接失败?试试
127.0.0.1代替localhost:某些系统下localhost走socket而127.0.0.1走TCP,行为不同。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











