如何建立数据库连接将mysql转换为PDO?

时间:2013-03-26 08:22:59

标签: php mysql pdo

我试图将我的所有mysql代码转换为PDO。我试图转换为PDO的第一件事是我的数据库连接。有人能以正确的方式帮助我吗?....

这是我在mysql中的数据库连接:

  $host = "localhost"; 
$user = "root"; 
$password = "root";
$db = "blog";

$bd = mysql_connect($host, $user, $password) or die("Opps something wrong...");
mysql_select_db($db, $bd) or die("Opps something wrong...");

5 个答案:

答案 0 :(得分:2)

查看PHP手册的PDO page,特别是关于“连接和连接管理”的部分:http://www.php.net/manual/en/pdo.connections.php

$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);

或......使用Captain Common Sense的方法:)

答案 1 :(得分:2)

有一个PDO tag wiki,您可以从那些拥有真正的 PDO体验的人那里学习正确的方式(以及许多其他有用的东西)。

$dsn = "mysql:host=$host;dbname=$db;charset=utf8";
$opt = array(
    PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,
    PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
);
$pdo = new PDO($dsn,$username,$password, $opt);

与处理连接错误无效的所有其他代码(因为它们在实际连接后设置异常模式)不同,它将

  • 使PHP在连接错误上抛出异常
  • 不会通过回显错误向活动服务器上的潜在攻击者透露敏感信息。
  • 为您提供必不可少的堆栈跟踪
  • 在正确的位置设置连接编码

与旧代码不同,它不会因无用的消息而消亡,但它会

  • 在屏幕上显示有用的错误消息
  • 在记录有用的错误消息时死亡,屏幕空白
  • 在记录有用的错误消息时死亡,显示常规错误页面
  • 根本没有死,而是使用指定的处理函数优雅地处理

...取决于所选的设置。

答案 2 :(得分:1)

连接错误处理..

try {
    $conn = new PDO('mysql:host=localhost;dbname=myDatabase', $username, $password);
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e) {
    echo 'ERROR: ' . $e->getMessage();
}

答案 3 :(得分:0)

$conn = new PDO('mysql:host=localhost;dbname=myDatabase', $username, $password);

try {
    $conn = new PDO('mysql:host=localhost;dbname=blog', $username, $password);
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e) {
    echo 'ERROR: ' . $e->getMessage();
}

更多详情Click here

答案 4 :(得分:0)

你看过into the manual吗?

$dbh = new PDO('mysql:host=localhost;dbname=yourdbname', 'youruser', 'yourpassword');