PHP 5 及以上版本建议使用以下方式连接 MySQL :
- MySQLi :MySQLi 只针对 MySQL 数据库,MySQLi 还提供了 API 接口。
- PDO (PHP Data Objects):PDO 应用在 12 种不同数据库中。
共同点:
1. 两者都是面向对象
2. 两者都支持预处理语句。 预处理语句可以防止 SQL 注入,对于 web 项目的安全性是非常重要的。
确保wamp里已经安装好了MySQLi或PDO,查看方式:echo phpinfo();
接下来将会使用以下三种方式来演示 PHP 操作 MySQL:
- MySQLi (面向对象)
- MySQLi (面向过程)
- PDO
1. MySQLi - 面向对象
<?php header('Content-Type: text/html;charset=utf-8'); //echo phpinfo(); // MySQLi面向对象 // 在我们访问MySQL数据库之前,我们需要先连接到数据库服务器 $servername = "localhost"; $username = "root"; $password = ""; // 创建连接 $conn = new mysqli($servername, $username, $password); // 检测连接 if($conn -> connect_error) { die("连接失败:". $conn->connect_error); } echo "连接成功"; ?>
2. MySQLi - 面向过程
<?php header('Content-Type: text/html; charset=utf-8'); // MySQLi - 面向过程 $servername = "localhost"; $username = "root"; $password = ""; // 创建连接 $conn = mysqli_connect($servername, $username, $password); // 检测连接 if(!$conn) { die("连接失败:" . mysqli_connect_error()); } echo "连接成功"; ?>
3. PDO连接MySQL数据库
PDO要设置数据库名,如果没有指定,则会抛出异常
<?php header('Content-Type: text/html; charset=utf-8'); // PDO连接MySQL数据库 // PDO要设置数据库名,如果没有指定,则会抛出异常 $servername = "localhost"; $username = "root"; $password = ""; $dbname = "mugua"; try { $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password); echo "连接成功"; } catch(PDOException $e) { echo $e->getMessage(); } ?>
连接在脚本执行完毕后会自动关闭,也可以使用代码关闭连接:
MySQLi - 面向对象
$conn->close();
MySQLi - 面向过程
mysqli_close($conn);
PDO
$conn = null;