从mysql更新到PDO的最佳做法

问题描述 投票:0回答:1

我正在将代码库从mysql更新为pdo,这是我第一次完成这样的项目,因此我一直在研究最佳实践,并希望获得一些投入。这是旧代码:

$link = @mysql_connect('localhost', "xxx", "xxx")

 or die('Could not connect: ' . mysql_error());

mysql_select_db("xxx") or die('Could not select database');

在我的代码中,我将所有登录凭据放入一个单独的文件中,并使用ip地址,用户名和密码(而不是localhost)进行连接。

try {
    $pdo = new PDO($dsn, $user, $password);
    $pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
    $pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
    $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e){
    log_error("Failed to run query", $e->getMessage(), $e->getCode(), array('exception' => $e));
    die('Could not connect!');

两个问题,这是使用die方法处理错误并登录到客户端的一种很好的替代方法,这也是正确的连接方式吗?使用localhost与服务器IP地址进行连接是否有优势?感谢您的帮助!

php mysql pdo
1个回答
0
投票

这是使用die方法的好选择吗?

您所做的作为迁移的一部分是合理的-它的行为应与以前相同。但是,您可能会考虑not捕获PDOException并允许将其一直抛出到全局错误处理程序。这样比较好,因为它的代码更少,而且您不会仅捕获die的异常。但是在进行更改之前,您应该了解它在生产系统中的行为方式(您会在日志中看到错误)吗?

这是正确的连接方式吗?

是,似乎您正确使用了PDO

使用本地主机与服务器IP地址进行连接是否有优势?

您的意思是在生产中?最佳实践是在单独的服务器上运行数据库-在这种情况下,localhost显然不起作用。如果负载很轻,并且您现在正在同一盒子上运行数据库和PHP服务器,那么无论哪种方式都没关系。

© www.soinside.com 2019 - 2024. All rights reserved.