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
<?php
$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
<?php
$servername = "localhost";
$username = "username";
$password = "password";

// 创建连接
$conn = mysqli_connect($servername, $username, $password);

// 检测连接
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
echo "连接成功";

面前PDO
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
$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);

PDO

1
$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