从 MySQL 函数转换到 PHP 中的 PDO
PHP 的 MySQL 函数预计将被弃用并最终删除。 为了确保未来的兼容性并利用增强的安全性和功能,开发人员应迁移到 PHP 数据对象 (PDO),这是一个强大的、面向对象的数据库访问层。
PDO 的优点:
使用 PDO 连接到数据库
MySQL 连接:
<code class="language-php">$dsn = 'mysql:dbname=databasename;host=127.0.0.1'; $user = 'dbuser'; $password = 'dbpass'; $dbh = new PDO($dsn, $user, $password);</code>
MSSQL 连接:
<code class="language-php">$dsn = 'sqlsrv:Server=127.0.0.1;Database=databasename'; $user = 'dbuser'; $password = 'dbpass'; $dbh = new PDO($dsn, $user, $password);</code>
使用准备好的语句执行查询
PDO 利用准备好的语句来高效、安全地执行查询。 以下是绑定变量的方法:
命名参数:
<code class="language-php">$statement = $dbh->prepare('SELECT * FROM users WHERE name = :username'); $statement->execute([':username' => 'example']);</code>
索引参数:
<code class="language-php">$statement = $dbh->prepare('SELECT * FROM users WHERE name = ?'); $statement->execute(['example']);</code>
检索查询结果
多种方法有利于结果检索:
fetch()
:以数组形式返回单行。fetchAll()
:将所有行作为数组的数组返回。rowCount()
:提供受影响的行数(对于 INSERT、UPDATE、DELETE 有用)。PDO 连接类示例
为了增强代码组织和可重用性,请考虑自定义 PDO 类:
<code class="language-php">class MyPDO { public $dbh; public function __construct($dsn, $username, $password) { $this->dbh = new PDO($dsn, $username, $password); $this->dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } public function query($sql) { return $this->dbh->query($sql); } public function prepare($sql) { return $this->dbh->prepare($sql); } } // Example Usage: $mypdo = new MyPDO($dsn, $username, $password); $stmt = $mypdo->prepare('SELECT * FROM users WHERE name = :name'); $stmt->execute([':name' => 'example']); while ($row = $stmt->fetch()) { echo $row['name']; }</code>
以上是为什么要在 PHP 中用 PDO 替换 MySQL 函数?的详细内容。更多信息请关注PHP中文网其他相关文章!