php数据库常用代码有哪些?新手必看实用技巧分享

PHP数据库连接基础

PHP与数据库交互的核心是建立连接,常用的数据库扩展包括MySQLi和PDO,MySQLi专为MySQL设计,支持面向过程和面向对象两种方式;PDO则支持多种数据库,具有更好的跨平台性,以MySQLi面向对象为例,连接代码如下:

php数据库常用代码有哪些?新手必看实用技巧分享

$host = "localhost";  
$user = "root";  
$pass = "";  
$db = "test_db";  
$conn = new mysqli($host, $user, $pass, $db);  
if ($conn->connect_error) {  
    die("连接失败: " . $conn->connect_error);  
}  

连接时需注意错误处理,避免直接暴露敏感信息,PDO连接方式类似,但需指定数据库类型(如mysql:host=localhost;dbname=test_db)。

执行SQL查询语句

查询数据是数据库操作的基础,使用MySQLi的query()方法执行SELECT语句,并通过fetch_assoc()获取结果:

$sql = "SELECT id, name FROM users";  
$result = $conn->query($sql);  
if ($result->num_rows > 0) {  
    while($row = $result->fetch_assoc()) {  
        echo "ID: " . $row["id"]. " Name: " . $row["name"]. "<br>";  
    }  
} else {  
    echo "0 结果";  
}  

对于PDO,需使用prepare()execute()预处理语句,防止SQL注入:

$stmt = $conn->prepare("SELECT id, name FROM users WHERE id = :id");  
$stmt->bindParam(':id', $id);  
$stmt->execute();  
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);  

插入、更新与删除数据

插入数据时,使用INSERT INTO语句,MySQLi示例:

php数据库常用代码有哪些?新手必看实用技巧分享

$sql = "INSERT INTO users (name, email) VALUES ('John', 'john@example.com')";  
if ($conn->query($sql) === TRUE) {  
    echo "新记录插入成功";  
} else {  
    echo "Error: " . $sql . "<br>" . $conn->error;  
}  

更新数据通过UPDATE实现,删除数据使用DELETE,务必添加WHERE条件,避免误操作,PDO推荐使用预处理语句处理动态数据:

$stmt = $conn->prepare("UPDATE users SET email = :email WHERE id = :id");  
$stmt->execute(['email' => 'new@example.com', 'id' => 1]);  

事务处理与错误管理

事务确保数据一致性,MySQLi中通过begin_transaction()commit()rollback()实现:

$conn->begin_transaction();  
try {  
    $conn->query("INSERT INTO accounts (name, balance) VALUES ('Alice', 1000)");  
    $conn->query("INSERT INTO transactions (user_id, amount) VALUES (1, -100)");  
    $conn->commit();  
} catch (Exception $e) {  
    $conn->rollback();  
    echo "事务失败: " . $e->getMessage();  
}  

PDO需设置PDO::ATTR_ERRMODEPDO::ERRMODE_EXCEPTION以启用异常处理。

数据库连接关闭与优化

操作完成后关闭连接:$conn->close()(MySQLi)或$conn = null(PDO),优化方面,建议使用连接池(如PDO的持久化连接)、限制查询结果数量(LIMIT子句)以及定期索引优化。

php数据库常用代码有哪些?新手必看实用技巧分享

相关问答FAQs

Q1: 如何防止SQL注入攻击?
A1: 使用预处理语句(PDO或MySQLi的prepare()方法)过滤用户输入,避免直接拼接SQL字符串。$stmt->bindParam(':id', $id)确保变量被安全转义。

Q2: 何时使用MySQLi,何时选择PDO?
A2: 若项目仅使用MySQL,MySQLi性能更优;若需支持多种数据库(如PostgreSQL、SQLite),PDO是更好的选择,因其提供统一的API接口。

图片来源于AI模型,如侵权请联系管理员。作者:酷小编,如若转载,请注明出处:https://www.kufanyun.com/ask/185746.html

(0)
上一篇2025年12月22日 04:28
下一篇 2025年12月22日 04:32

相关推荐

  • Linux环境下如何实现域名动态解析的最佳实践方法探讨?

    Linux域名动态解析在互联网时代,域名已经成为企业或个人身份的重要标识,为了方便用户访问,通常需要将域名解析到对应的IP地址,而在Linux系统中,我们可以使用动态解析技术,实现域名的实时更新,确保用户能够快速访问到正确的资源,动态解析原理动态解析,顾名思义,就是根据需要动态地将域名解析到对应的IP地址,在L……

    2025年11月4日
    0190
  • 没有任何经验,开一家软件开发公司到底要多少钱?

    在数字化浪潮席卷全球的今天,软件已成为驱动商业创新和社会进步的核心引擎,从移动互联网应用到企业级SaaS解决方案,从人工智能平台到物联网系统,软件的需求无处不在,创办一家互联网开发软件公司,不仅是顺应时代趋势的选择,更是一个充满机遇与挑战的创业征程,这不仅仅是编写代码,更是关于构建产品、服务客户、打造品牌和实现……

    2025年10月16日
    0350
  • 腾讯手游助手电脑版下载

    腾讯手游助手电脑版下载 – 腾讯手游助手软件PC端下载软件简介腾讯手游助手电脑版是由腾讯官方推出的一款强大手游模拟器,专为玩家打造,旨在将精彩的手机游戏世界完美移植到电脑屏幕上,它凭借出色的性能优化、稳定的运行环境以及与腾讯游戏生态的深度整合,成为了广大PC玩家畅玩手游的首选工具,无论是追求更高画质、更精准的键……

    2025年12月15日
    0200
  • CDN路由器真的能完全替代普通路由器使用吗?

    在现代网络环境中,CDN(内容分发网络)路由器因其强大的缓存和分发能力而备受青睐,许多人可能不知道,这种路由器实际上也可以充当普通路由器使用,以下将详细介绍CDN路由器的功能和如何将其配置为普通路由器,CDN路由器概述CDN路由器是专门设计用于优化内容分发网络的数据传输的设备,它通过在全球多个节点上缓存内容,减……

    2025年11月5日
    0230

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注