PHP mysqli操作示例讲解_PHP通过mysqli执行数据库查询


PHP用mysqli操作数据库核心是连接、执行SQL、获取结果,需重视错误处理与资源释放:1.推荐面向对象方式建安全连接并检查错误;2.查询用prepare+bind_param防注入;3.增删改查后及时关闭语句或释放结果。

php mysqli操作示例讲解_php通过mysqli执行数据库查询

PHP 用 mysqli 执行数据库查询,核心就三点:连上数据库、发 SQL、取结果。不复杂,但容易忽略错误处理和资源释放。下面用实际代码讲清楚常用场景。

1. 建立安全连接(推荐面向对象方式)

mysqli 支持面向对象(OO)和过程式两种风格,推荐用 OO 方式,更清晰、易维护。

示例:

$host = 'localhost';
$username = 'root';
$password = '123456';
$database = 'test_db';
<p>// 创建连接
$mysqli = new mysqli($host, $username, $password, $database);</p><p>// 检查连接是否成功
if ($mysqli->connect_error) {
die('连接失败:' . $mysqli->connect_error);
}</p><p>// 设置字符集,避免中文乱码
$mysqli->set_charset('utf8mb4');</p>

注意:
• 不要直接把密码写死在代码里,生产环境应从配置文件或环境变量读取;
utf8mb4 支持 emoji 和完整 Unicode,比 utf8 更稳妥;
• 连接失败必须检查,否则后续操作会报错或静默失败。

2. 执行查询语句(SELECT)并获取数据

分“有结果集”和“无结果集”两类操作,SELECT 属于前者。

立即学习“PHP免费学习笔记(深入)”;

示例:查用户列表

$sql = "SELECT id, name, email FROM users WHERE status = ?";
$stmt = $mysqli->prepare($sql); // 预处理,防 SQL 注入
<p>$status = 1;
$stmt->bind_param('i', $status); // 'i' 表示整型参数
$stmt->execute();</p><p>$result = $stmt->get_result(); // 获取结果集</p>
                    <div class="aritcle_card">
                        <a class=&quot;aritcle_card_img" href="/ai/839">
                            <img src="https://img.php.cn/upload/ai_manual/000/000/000/175680126275698.png" alt="QoQo">
                        </a>
                        <div class="aritcle_card_info">
                            <a href="/ai/839">QoQo</a>
                            <p>QoQo是一款专注于UX设计的AI工具,可以帮助UX设计师生成用户角色卡片、用户旅程图、用户访谈问卷等。</p>
                            <div class="">
                                <img src="/static/images/card_xiazai.png" alt="QoQo">
                                <span>172</span>
                            </div>
                        </div>
                        <a href="/ai/839" class="aritcle_card_btn">
                            <span>查看详情</span>
                            <img src="/static/images/cardxiayige-3.png" alt="QoQo">
                        </a>
                    </div>
                <p>while ($row = $result->fetch_assoc()) {
echo "ID: {$row['id']}, 姓名: {$row['name']}, 邮箱: {$row['email']}<br>";
}</p><p>$stmt->close(); // 记得关闭语句</p>

关键点:
• 一定要用 prepare + bind_param 处理用户输入,杜绝 SQL 注入;
fetch_assoc() 返回关联数组,更直观;也可用 fetch_array()fetch_object()
• 查询完及时调用 $stmt->close()$result->free(),释放内存。

3. 执行增删改(INSERT/UPDATE/DELETE)

这类操作不返回结果集,重点看影响行数和错误提示。

示例:添加一条记录

$sql = "INSERT INTO users (name, email, status) VALUES (?, ?, ?)";
$stmt = $mysqli->prepare($sql);
<p>$name = '张三';
$email = 'zhangsan@example.com';
$status = 1;</p><p>$stmt->bind_param('ssi', $name, $email, $status);
$stmt->execute();</p><p>if ($stmt->affected_rows > 0) {
echo "新增成功,ID:" . $mysqli->insert_id;
} else {
echo "执行失败:" . $stmt->error;
}</p><p>$stmt->close();</p>

说明:
$stmt->affected_rows 返回受影响的行数,INSERT 成功至少为 1;
$mysqli->insert_id 可拿到刚插入记录的自增 ID;
• 即使是简单 INSERT,也建议用预处理,统一风格、更安全。

4. 简单查询(无参数)可用 query(),但慎用

如果 SQL 固定、不含用户输入(比如查全部配置项),可用 query() 简化写法:

$result = $mysqli->query("SELECT * FROM config");
if ($result && $result->num_rows > 0) {
    while ($row = $result->fetch_assoc()) {
        echo $row['key'] . ' = ' . $row['value'] . '<br>';
    }
}
$result->free(); // 释放结果集

提醒:
• 绝对不要拼接用户输入到这种 SQL 字符串里;
• 仍需检查 $result 是否为 false(查询失败时返回 false);
• 记得调用 free(),尤其在循环中多次查询时。

基本上就这些。掌握连接、预处理查询、增删改判断、基础错误处理,就能安全稳定地用 mysqli 操作 MySQL 数据库了。

以上就是PHP mysqli操作示例讲解_PHP通过mysqli执行数据库查询的详细内容,更多请关注php中文网其它相关文章!


# php  # word  # 中文乱码  # ai  # 环境变量  # 配置文件  # 邮箱  # mysql  # 追溯到  # 肇庆企业网站推广建设  # 苹果网站建设北路小学  # 荆门市网络营销推广中心  # 从子  # 器及  # 行数  # 结构化  # 建安  # 数据处理  # 数据库查询  # 面向对象  # seo销售工程师招聘  # 武夷山公司seo技术  # 如何用seo排名  # 唐山网站建设与运营公司  # 锦州抖音关键词推广排名  # 静海网站营销推广  # 辽宁企业网站建设推广 


相关栏目: 【 Google疑问12 】 【 Facebook疑问10 】 【 优化推广96088 】 【 技术知识133117 】 【 IDC资讯59369 】 【 网络运营7196 】 【 IT资讯61894


相关推荐: 拷贝漫画2025网页版入口 拷贝漫画官网免费看全集  优化Flask模板中SQLAlchemy查询迭代标签:处理字符串空格问题  Win10通知横幅停留时间修改 Win10自定义通知显示时长【技巧】  之了课堂app做题入口  PHP实现等比数列:构建数组元素基于前一个值递增的方法  iphone16系列配置参数介绍  酷狗音乐多音轨设置教程  魔法祈幻界兑换码礼包大全  精通VS Code多光标编辑以实现闪电般快速的修改  J*aScript装饰器_元编程实战  金牛福袋获取攻略  使用 .htaccess 正确配置 WordPress 子目录重定向与路径保留  如何在解析前预检查XML文件的完整性? 比如检查文件大小或特定结束标签  优化 WooCommerce 产品价格显示与自定义短代码集成  C#解析并修改XML后保存 如何确保格式与编码的正确性  《tt语音》超级玩家开通方法  免费占卜在线神算_免费占卜手机神算  mysql离线安装后如何启动_mysql离线安装完成后启动服务的方法  小红书网页版怎么进 小红书网页版通用入口  鲁班大师乓乓皮肤获取方法  基于 Flink 和 Kafka 实现高效流处理:连续查询与时间窗口  CDR如何复制交互式填充色  优化Leaflet弹出层图片显示:条件渲染策略  《饿了么》拼好饭点外卖教程2025  怎么恢复删除的电脑文件_数据恢复软件使用教程  OpenWeatherMap API:通过城市名称获取天气预报数据指南  Pandas中基于动态偏移量实现DataFrame列值位移的策略  创客贴登录页面入口 创客贴网页版最新网址链接  抖音作品被限流怎么办 抖音内容优化与流量恢复方法  如何在CSS中使用伪类:valid实现表单验证提示_结合:valid改变边框颜色  在Dash应用中自定义HTML标题和网站图标  QQ邮箱官方登录页_腾讯出品安全稳定的邮箱服务  《雷电模拟器》自动点击设置方法  广州地铁app准妈咪徽章领取方法  睡觉时心跳快是什么原因 夜间心悸如何应对  byrutor直接访问入口 byrutor官方游戏库  TikTok网页版实时观看入口 TikTok网页版短视频在线浏览  百度地图离线地图无法加载如何解决 百度地图离线地图加载优化方法  如何查找哪个composer包引入了特定的依赖?  谷歌浏览器如何查找和删除恶意软件 谷歌浏览器内置安全清理工具使用教程  J*aScript中高效处理用户输入:从Keyup事件到表单提交的优化实践  Lar*el Dusk 测试中管理浏览器权限:以剪贴板访问为例  苹果手机聊天记录删除了如何恢复  QQ邮箱PC端登录页面_QQ邮箱网页版登录界面  PPT页面尺寸怎么修改 PPT自定义幻灯片大小与方向设置【教程】  漫蛙漫画直连入口 _ manwa官方备用入口实时检测  小红书网页版在线直达 小红书网页版免费登录入口  Python实时数据流中高效查找最大最小值  C++怎么解决数值计算中的精度问题_C++浮点数误差与数值稳定性分析  《友玩*》创建群聊方法 

 2025-12-15

了解您产品搜索量及市场趋势,制定营销计划

同行竞争及网站分析保障您的广告效果

点击免费数据支持

提交您的需求,1小时内享受我们的专业解答。

运城市盐湖区信雨科技有限公司


运城市盐湖区信雨科技有限公司

运城市盐湖区信雨科技有限公司是一家深耕海外推广领域十年的专业服务商,作为谷歌推广与Facebook广告全球合作伙伴,聚焦外贸企业出海痛点,以数字化营销为核心,提供一站式海外营销解决方案。公司凭借十年行业沉淀与平台官方资源加持,打破传统外贸获客壁垒,助力企业高效开拓全球市场,成为中小企业出海的可靠合作伙伴。

 8156699

 13765294890

 8156699@qq.com

Notice

We and selected third parties use cookies or similar technologies for technical purposes and, with your consent, for other purposes as specified in the cookie policy.
You can consent to the use of such technologies by closing this notice, by interacting with any link or button outside of this notice or by continuing to browse otherwise.