PHP MySQL
通过PHP,可以连接和操作数据库
PHP+MySQL
PHP与MySQL的结合是跨平台的,可以在Windows上和Unix平台上应用
连接MySQL
PHP5以上版本建议使用以下方式连接MySQL:
- MySQLi extension(i 意为 improved)
- PDO(PHP Data Objects)
实例
面向对象1
2
3
4
5
6
7
8
9
10
11
12
13
$servername = "localhost";
$username = "root";
$password = "root";
// 创建连接
$conn = new mysqli($servername, $username, $password);
// 检测连接
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
echo "连接成功";
面向过程1
2
3
4
5
6
7
8
9
10
11
12
13
$servername = "localhost";
$username = "username";
$password = "password";
// 创建连接
$conn = mysqli_connect($servername, $username, $password);
// 检测连接
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
echo "连接成功";
面前PDO1
2
3
4
5
6
7
8
9
10
11
12
13
$servername = "localhost";
$username = "username";
$password = "password";
try {
$conn = new PDO("mysql:host=$servername;", $username, $password);
echo "连接成功";
}
catch(PDOException $e)
{
echo $e->getMessage();
}
关闭连接
面向对象1
$conn->close();
面向过程1
mysqli_close($conn);
PDO1
$conn = null;
总结
1.在链接的时候出现了很多问题,大致问题是因为PHP和MySQL的版本问题,我用的是PHP7.2和MySQL8.1.5,由于MySQL版本更新了加密策略caching_sha2_password
但PHP用的是mysql_native_password
,所以需要在mysql的ini配置文件里default_authentication_plugin改为
mysql_native_password
并且使用alter user更新一次密码
2.PDO 应用在 12 种不同数据库中, MySQLi 只针对 MySQL 数据库,如果你的项目需要在多种数据库中切换,建议使用 PDO
3.面向对象连接数据库,需要使用new mysqli($servername, $username, $password)
4.面向过程使用mysqli_connect($servername, $username, $password)
来连接
5.PDO则声明PDO的对象new PDO("mysql:host=$servername;", $username, $password)
6.关闭连接,面向对象调用对象的close()方法;面向过程使用mysqli_close()方法;PDO则将PDO对象赋值为null