2

我试图将我所有的 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...");
4

5 回答 5

2

查看 PHP 手册的PDO 页面,尤其是“连接和连接管理”部分:http ://www.php.net/manual/en/pdo.connections.php

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

或者......使用常识队长的方法:)

于 2013-03-26T08:26:00.903 回答
2

有一个PDO 标签 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在连接错误时抛出异常
  • 不会通过回显错误来向实时服务器上的潜在攻击者泄露敏感信息。
  • 为您提供不可或缺的堆栈跟踪
  • 在正确的位置设置连接编码

与您的旧代码不同,它不会因无用的消息而死,但它要么

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

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

于 2013-03-26T08:38:03.067 回答
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();
}
于 2013-03-26T08:24:49.237 回答
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();
}

更多详情请点击这里

于 2013-03-26T08:26:58.187 回答
0

你看过说明书吗?

$dbh = new PDO('mysql:host=localhost;dbname=yourdbname', 'youruser', 'yourpassword');
于 2013-03-26T08:27:15.007 回答