PHP mysqli 怎么用

做网站或小工具时,很多人会遇到“怎么让网页和数据库对话”的问题,比如想做一个用户留言板,得把用户写的内容存到后台,或者从后台调出历史留言,这时候就需要一个好用的工具来连接网页和数据库,PHP的mysqli就是很常用的一个。

先搞懂mysqli是什么,不用记复杂定义

不用纠结术语,你可以把mysqli当成“网页和数据库的专属翻译员+接线员”:你用PHP写的网页,说的是“网页语言”,数据库(比如常用的MySQL)说的是“数据库语言”,mysqli就是中间的角色——它先把网页的请求翻译成数据库能听懂的话,再把数据库返回的结果转成网页能显示的内容。

PHP mysqli 怎么用

举个生活化的例子:你想给远方的朋友寄信(网页要存数据到数据库),mysqli就是快递员:你写好信(PHP代码),快递员帮你把信送到朋友手里(数据库),再把朋友的回信(数据库的结果)带回来给你。

第一步:先搭好“接线的基础”

用mysqli的前提是你的PHP和MySQL都正常开着,而且得提前准备好几个关键信息,就像寄信要知道收件人的地址、姓名一样:

  • 数据库服务器地址:本地测试的话一般是localhost(就是你自己电脑的数据库);
  • 数据库用户名:本地测试常用root(这是数据库的默认管理员账号);
  • 数据库密码:本地测试如果没设过密码,一般是空,或者你自己设的密码;
  • 要操作的数据库名字:比如你建了个叫test的数据库,就用这个名字。

举个测试的小例子,先试试能不能连上线:

`php

// 1. 用mysqli创建连接,把刚才准备的信息填进去

$conn = new mysqli('localhost', 'root', '你的密码', 'test');

// 2. 检查连接有没有成功

if ($conn->connect_error) {

// 连不上的话就停在这里,输出错误信息

die("连接失败:" . $conn->connect_error);

}

// 连上的话,先设置编码,避免中文乱码(比如留言里的“你好”变成乱码)

$conn->set_charset('utf8mb4');

echo "连接数据库成功!";

`

这一步就像先试一下快递员能不能正常取件,要是连不上,后面的寄信、取信都做不了。

第二步:存数据到数据库——就像寄信

连上数据库后,最常用的操作是把数据存进去,比如存用户的留言。假设你有个留言表叫messages,有两个字段:content(留言内容)和add_time(留言时间),要存一条新留言的话,写这样的代码:

`php

// 先准备要存的数据,比如用户提交的留言内容

$userContent = '今天天气真好!';

// 把留言时间也准备好,用PHP的时间函数生成当前时间

$addTime = date('Y-m-d H:i:s');

// 写“寄信请求”——插入数据的SQL语句(不用怕,就像你给朋友写的信)

$sql = "INSERT INTO messages (content, add_time) VALUES ('$userContent', '$addTime')";

// 把请求发给mysqli,让它转交给数据库

if ($conn->query($sql) === TRUE) {

// 成功了就输出提示

echo "留言提交成功!";

} else {

// 失败了输出原因

echo "提交失败:" . $conn->error;

}

`

这里要注意一个小细节:如果是用户自己输入的内容(比如留言框的内容),一定要用mysqli的“安全处理”,就像寄信前把信装在信封里,防止快递中途被改内容,代码里用$conn->real_escape_string()处理一下就行,比如:

`php

$userContent = $conn->real_escape_string($_POST['content']); // 从表单取用户输入

`

第三步:从数据库取数据——就像收回信

存好数据后,接下来要把留言显示在网页上,也就是从数据库“取回信”,代码也很简单:

`php

// 写“取信请求”——查询所有留言的SQL语句

$sql = "SELECT * FROM messages ORDER BY add_time DESC"; // 按时间倒序,最新的在前面

$result = $conn->query($sql);

// 检查有没有收到回信(有没有数据)

if ($result->num_rows > 0) {

// 每一行数据就像一封信,循环把所有信打开看内容

while($row = $result->fetch_assoc()) {

// 把留言内容和时间显示出来

echo "留言:" . $row['content'] . " | 时间:" . $row['add_time'] . "<br>";

}

} else {

echo "还没有留言哦~";

}

`

这里的fetch_assoc()就是把数据库返回的一行数据,转成网页能直接用的数组,像拆快递一样,把包裹里的东西(数据)拿出来。

最后:用完别忘了“收尾”

就像寄完信要跟快递员说再见,用完数据库一定要关闭连接,既节约资源,又不会出问题:

`php

// 最后关闭连接

$conn->close();

`

其实mysqli的核心就是“创建连接→写请求(SQL)→执行请求→处理结果→关闭连接”,不用怕记复杂的代码,做小项目的时候照着套就行,熟练几次就会发现,它就是个帮你搞定网页和数据库对话的好用工具。

上一篇 Swift编程语言的核心特性与主流开发场景的实用知识科普