当前位置:首页 > PHP

php实现查询

2026-02-14 00:06:37PHP

PHP 实现数据库查询

PHP 中实现数据库查询通常使用 PDO(PHP Data Objects)或 MySQLi 扩展。以下分别介绍两种方法的实现方式。

使用 PDO 进行查询

PDO 提供了一个数据访问抽象层,支持多种数据库。

<?php
$host = 'localhost';
$db   = 'database_name';
$user = 'username';
$pass = 'password';
$charset = 'utf8mb4';

$dsn = "mysql:host=$host;dbname=$db;charset=$charset";
$options = [
    PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,
    PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
    PDO::ATTR_EMULATE_PREPARES   => false,
];

try {
    $pdo = new PDO($dsn, $user, $pass, $options);

    $stmt = $pdo->query('SELECT * FROM users');
    while ($row = $stmt->fetch()) {
        echo $row['name'] . "\n";
    }
} catch (PDOException $e) {
    throw new PDOException($e->getMessage(), (int)$e->getCode());
}
?>

使用 MySQLi 进行查询

MySQLi 是专门为 MySQL 设计的扩展。

<?php
$host = 'localhost';
$user = 'username';
$pass = 'password';
$db = 'database_name';

$mysqli = new mysqli($host, $user, $pass, $db);

if ($mysqli->connect_errno) {
    echo "Failed to connect to MySQL: " . $mysqli->connect_error;
    exit();
}

$result = $mysqli->query("SELECT * FROM users");
while ($row = $result->fetch_assoc()) {
    echo $row['name'] . "\n";
}

$mysqli->close();
?>

预处理语句防止 SQL 注入

预处理语句是防止 SQL 注入的最佳实践。

PDO 预处理

$stmt = $pdo->prepare('SELECT * FROM users WHERE id = ?');
$stmt->execute([$id]);
$user = $stmt->fetch();

MySQLi 预处理

$stmt = $mysqli->prepare("SELECT * FROM users WHERE id = ?");
$stmt->bind_param("i", $id);
$stmt->execute();
$result = $stmt->get_result();
$user = $result->fetch_assoc();

处理查询结果

查询结果可以以不同方式获取:

// 获取所有结果
$users = $stmt->fetchAll(PDO::FETCH_ASSOC);

// 获取单行
$user = $stmt->fetch(PDO::FETCH_ASSOC);

// 获取列
$count = $stmt->fetchColumn();

错误处理

良好的错误处理机制对数据库操作至关重要。

try {
    // 数据库操作
} catch (PDOException $e) {
    error_log($e->getMessage());
    // 显示用户友好信息
}

连接管理

数据库连接应在脚本结束时关闭。

php实现查询

// PDO 不需要显式关闭
// MySQLi 需要关闭
$mysqli->close();

以上方法涵盖了 PHP 中实现数据库查询的基本操作,可根据具体需求选择适合的方式。

标签: php
分享给朋友:

相关文章

php验证码的实现

php验证码的实现

PHP 验证码实现方法 使用 GD 库生成基础验证码 创建画布并生成随机字符串作为验证码内容: session_start(); $width = 120; $height = 40; $image…

php实现的分页

php实现的分页

PHP 实现分页的方法 基本分页逻辑 分页的核心在于计算总页数、当前页码以及数据偏移量。假设每页显示 10 条数据: $current_page = isset($_GET['page']) ? (…

php mvc实现

php mvc实现

PHP MVC 实现步骤 模型(Model)层 模型负责数据处理和业务逻辑,通常与数据库交互。创建一个基类模型,其他具体模型继承它。 class Model { protected $db;…

php 链表实现

php 链表实现

在 PHP 中实现链表可以通过类来模拟链表节点(Node)和链表(LinkedList)结构。以下是链表的完整实现示例,包含基础操作如插入、删除、遍历等。 链表节点类(Node) 链表的基本单元是节…

php无法实现的

php无法实现的

PHP 的局限性 PHP 是一种广泛使用的服务器端脚本语言,主要用于 Web 开发。尽管功能强大,但在某些场景下存在局限性。 操作系统级开发 PHP 不适合编写操作系统内核或底层驱动程序。这类任务通…

php实现抽奖程序

php实现抽奖程序

PHP实现抽奖程序 基本抽奖逻辑 创建一个简单的抽奖程序需要定义奖品、中奖概率及随机选择逻辑。以下是一个基础实现示例: <?php // 奖品配置(奖品名称 => 概率) $prizes…