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を実際に体験した人から正しい方法(および他の多くの役立つこと)を学ぶことができるPDOタグwikiがあります

$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 に答える