首页 > 后端开发 > php教程 > 如何从 MySQL 函数迁移到 PDO_MySQL?

如何从 MySQL 函数迁移到 PDO_MySQL?

Susan Sarandon
发布: 2024-11-26 08:54:10
原创
697 人浏览过

How to Migrate from MySQL Functions to PDO_MySQL?

如何用 PDO 替换 MySQL 函数

MySQL 函数现已弃用,并将在未来的 PHP 版本中删除。应使用 MySQLi 或 PDO_MySQL。

PDO 实现

PDO 提供了一个一致的接口来连接不同的数据库,包括 MySQL 和MSSQL。

连接:

  • MySQL:

    $dsn = 'mysql:dbname=databasename;host=127.0.0.1';
    $dbh = new PDO($dsn, 'dbuser', 'dbpass');
    登录后复制
  • MSSQL:

    $dsn = 'sqlsrv:Server=127.0.0.1;Database=databasename';
    $dbh = new PDO($dsn, 'dbuser', 'dbpass');
    登录后复制

正在执行查询:

PDO 使用预准备语句,可以防止 SQL 注入漏洞。

$SQL = 'SELECT ID, EMAIL FROM users WHERE user = :username';
登录后复制

执行查询:

使用准备和执行用于变量查询。

$query = $dbh->prepare($SQL);
$query->execute([':username' => 'someone']);
登录后复制

正在获取结果:

使用 fetch 或 fetchAll 检索结果。

while ($row = $query->fetch()) {
    echo $row['ID'], $row['EMAIL'];
}
登录后复制

异常处理:

启用 PDO 异常处理。

$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
登录后复制

方便班级:

class PDOConnection {
    function __construct($dsn, $username, $password) {
        $this->connection = new PDO($dsn, $username, $password);
        $this->connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        $this->connection->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
    }

    function query($SQL) { return $this->connection->query($SQL); }
    function prepare($SQL, $params = []) { return $this->connection->prepare($SQL)->execute($params); }
}
登录后复制

以上是如何从 MySQL 函数迁移到 PDO_MySQL?的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板