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

如何从 MySQL 函数迁移到 PDO_MySQL?

Susan Sarandon
Susan Sarandon原创
2024-11-26 08:54:10688浏览

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