PHP5.5以上でデータベースに接続するためのテンプレートをテキストエディタに貼り付ければOKです。
3行目を$dsn = 'mysql:dbname=データベース名;host=データベースサーバー名;charset=utf8'; のように変更してください。
4行目はユーザー名です。
5行目ははパスワードです。
PHP5.5以上でデータベースに接続するためのテンプレート
Re: PHP5.5以上でデータベースに接続するためのテンプレート
PDOのコンストラクタ部分は,
あたりがよいかな,と思います。
$dbh = new PDO($dsn, $user, $pass, [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_EMULATE_PREPARES => false,
PDO::ATTR_STRINGIFY_FETCHES => false
]);
- PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
エラーを例外で通知するように設定します。
この設定は開発上必須です。
デフォルトがPDO::ERRMODE_SILENTなので,エラーがあってもPDOが握り潰してしまいます。
しかし,これを設定することでエラーによって例外が発生するため,問題をちゃんと取得することが出来ますし,try - catchでログに出力するなどもできます - PDO::ATTR_EMULATE_PREPARES => false
クライアントドライバ側でプレースホルダをエミュレート (動的プレースホルダ) せず,サーバー側でプレースホルダ (静的プレースホルダ) を処理するように設定します。
これは必須ではないですし,サーバーへの通信が増えるため,リクエストが多い場合はtrueの方がよいこともありますが,後述のATTR_STRINGIFY_FETCHESに関わるため,負荷問題がないならばfalseにした方がよいでしょう。 - PDO::ATTR_STRINGIFY_FETCHES => false
「fetchしたときの戻り値を数値型の列に対しても,必ず文字列型にする」というPDO::ATTR_STRINGIFY_FETCHESの機能を切る設定です。
これは,PDO::ATTR_EMULATE_PREPARESが「falseの場合のみ」有効です (動的プレースホルダでは常に文字列化される)。
PHPで型を気にしたくない,という面は確かにあるのですが,なんだかんだで気にした方が安全であるため,この設定を推奨します。