如何用 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中文网其他相关文章!