php数据库怎么实例化啊,跟着这教程一步步来超简单
- 问答
- 2025-12-27 06:55:19
- 3
主要参考W3School的PHP MySQLi教程、菜鸟教程的PHP数据库连接部分以及一些技术博客像PHP手册的实际应用例子,我把它们揉碎了讲给你听。
第一步:你得先有个“数据库”
想象一下,数据库就像一个巨大的、结构严谨的档案库,在你用PHP(也就是你的助手)去这个档案库取放东西之前,这个档案库必须已经存在,第一步不是在PHP里写代码,而是去创建它。
你会使用一个叫phpMyAdmin的工具(它一般和XAMPP、宝塔面板这类集成环境一起提供),或者直接用数据库的命令行。
- 打开你的phpMyAdmin(一般在浏览器输入
localhost/phpmyadmin)。 - 登录后,你会看到一个创建数据库的选项,给数据库起个名字,比如我叫它
my_test_db,字符集一般选utf8mb4,排序规则选utf8mb4_general_ci,这样能更好地支持中文,点击“创建”。 - 光有库还不行,还得有装数据的“桌子”,这个叫数据表,比如我想存用户信息,就创建一张叫
users的表。 - 给这张表设计字段:
id(整数,自动递增,设为主键)、username(用户名,字符串)、email(邮箱,字符串),把这些字段都设置好。
好了,你的“档案库”和“桌子”都准备好了,现在可以让PHP助手去干活了。
第二步:准备“钥匙”和“地址”——连接信息
要去档案库,你得知道地址、库房号(数据库名),还得有钥匙(用户名和密码),我们把它们先定义成变量,这样后面用起来方便。
<?php $servername = "localhost"; // 服务器地址,通常就是本地,所以是localhost $username = "root"; // 数据库用户名,安装后默认常常是root $password = ""; // 数据库密码,默认初始可能是空,但强烈建议你设一个复杂的密码 $dbname = "my_test_db"; // 你刚才创建的数据库名字 ?>
来源提示:几乎所有教程都会一开始就让你定义这四个变量,这是标准做法。
第三步:开始实例化连接——让PHP拿起钥匙开门
在PHP里,我们主要用两种方式跟MySQL数据库打交道:MySQLi 和 PDO,我这里先用MySQLi的“面向对象”方式来讲,因为这个听起来高级,但其实理解了对象的概念后,特别直观,实例化,说白了就是创建一个“连接对象”。
// 接着上面的代码写
// 创建一个新的MySQLi连接对象,这个过程就是“实例化”
$conn = new mysqli($servername, $username, $password, $dbname);
// 检查连接是否成功,这是非常非常重要的一步!
if ($conn->connect_error) {
// 如果连接失败,用die()函数输出错误信息并停止脚本
die("连接失败: " . $conn->connect_error);
} else {
echo "数据库连接成功啦!棒棒的!";
}
?>
逐行解释一下:
new mysqli(...):这个new关键字就是在“创造”一个mysqli类型的对象,我们把创造出来的这个对象赋值给变量$conn,以后我们所有对数据库的操作,比如查询、插入,都要通过这个$conn对象来进行,这就是“实例化”的核心。$conn->connect_error:这是一个对象的属性(可以理解为对象的特征),如果连接有错误,这个属性里就存着错误信息。->这个符号是访问对象属性和方法的方式。if ($conn->connect_error) { ... }:判断一下错误信息是否存在,如果存在,说明连接没成功。die(...):出错了就立刻停止,并告诉你为什么错了,比如你密码输错了,这里就会显示出来。
你运行一下这段代码,如果看到“数据库连接成功啦!棒棒的!”,恭喜你,最核心的一步——实例化连接——已经完成了!
第四步:用实例化好的连接去干点活儿——执行SQL查询
连接好了,总不能闲着,我们来执行一个最简单的查询,从users表里取出所有数据”。
SQL是一种用来和数据库对话的语言,SELECT * FROM users 这句话的意思就是“从users表里选择所有列的所有记录”。
// 假设连接成功的代码是上面的 $conn
// 写好SQL查询语句
$sql = "SELECT id, username, email FROM users";
// 通过之前实例化的连接对象 $conn 的 query() 方法,来执行这个查询
// query() 是对象的方法(可以理解为对象能做的动作)
$result = $conn->query($sql);
// 检查查询是否成功并有没有返回结果
if ($result->num_rows > 0) {
// 如果返回的记录行数大于0,说明有数据
// 使用 fetch_assoc() 方法一行一行地取出数据,它返回一个关联数组
while($row = $result->fetch_assoc()) {
echo "ID: " . $row["id"]. " - 名字: " . $row["username"]. " - 邮箱: " . $row["email"]. "<br>";
}
} else {
echo "哎呀,表里还没有数据呢,0 结果。";
}
?>
再来逐行解释:
$result = $conn->query($sql);:让连接对象$conn去执行$sql这个命令,返回的结果是一个结果集对象,我们把它存到$result变量里。$result->num_rows:结果集对象的一个属性,表示有多少行数据。while($row = $result->fetch_assoc()):fetch_assoc()方法每次从结果集里取出一行数据,变成数组赋值给$row,直到取完为止。$row[“id”]就是取当前行里”id”这个字段的值。
第五步:关门——关闭连接
就像你去图书馆看完书要离开一样,好的习惯是关闭连接,释放资源。
// 所有数据库操作都完成后,关闭连接 $conn->close(); echo “连接已关闭”; ?>
非常重要的一点:关于PDO方式
来源:PHP官方文档强烈推荐PDO的原因是其支持多种数据库,且对防止SQL注入有更好的默认支持。
刚才用的是MySQLi,还有一种更强大、更推荐的方式叫PDO,它的“实例化”过程稍微有点不一样,我也写一下,你可以对比看看:
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "my_test_db";
try {
// PDO的实例化,同样是 new 一个PDO对象
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
// 设置PDO错误模式为异常,这样出错会抛出异常,利于调试
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "PDO方式连接成功!";
}
catch(PDOException $e) {
// 如果try里面的代码块出错了,就会跳到这里执行
echo "PDO连接失败: " . $e->getMessage();
}
// 使用PDO进行查询的代码会有所不同,但连接实例化的部分就是这样。
?>
PHP数据库实例化的核心就是一句话:
使用 new 关键字,创建一个 mysqli 或 PDO 的对象,并把数据库的地址、用户名、密码、数据库名这些信息传给它,创建出来的这个对象(比如叫 $conn),就是你后续所有数据库操作的起点和桥梁。
整个过程就像:申请权限(用户名密码) -> 找到大楼和房间(服务器和数据库) -> 用钥匙开门实例化连接(new mysqli(...))-> 在房间里办事(执行SQL)-> 离开关门(close())。
跟着这五步走一遍,你绝对能搞定PHP的数据库实例化,记得每一步的代码都要自己动手敲进去,然后运行看看结果,出错了就根据提示排查,这样学得最快!

本文由符海莹于2025-12-27发表在笙亿网络策划,如有疑问,请联系我们。
本文链接:http://waw.haoid.cn/wenda/69264.html
