質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

3回答

1651閲覧

PHP オブジェクト指向型

a-_.

総合スコア133

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

1グッド

1クリップ

投稿2016/09/28 01:31

編集2016/09/28 02:08

PHPのクラスのコーディングについて調べてるんですが、どこで調べてもオブジェクト指向型での説明が殆どなので、手続き型よりもそちらでコーディングした方が良いというのは理解しました

更に深掘りしていくと、PDOとmysqli関数のオブジェクト指向型の2パターンが主に使用されているのが分かりました

そこで、PDOとmysqli関数のオブジェクト指向型、どちらがクラスのコーディングに向いているのか「慣れてない人でも分かりやすい」等理由を付けて教えていただけませんか

PDOについて調べると殆どオブジェクト指向型関連の説明しかないのですが、mysqli関数みたいにオブジェクト指向型と手続き型の様な書き方が存在するということなのでしょうか

SASAHARA👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

PDOを使うと、実装レベルでは対象となるDBがMySQL以外でも構わないため、汎用的に扱えます。
例えば、接続先の情報を

PHP

1define('DB_DBMS', 'mysql'); 2define('DB_USER', 'db_user');

等のように設定ファイル等に記載するようにしておけば、対象のDBがPostgreSQLに変更になっても設定ファイルの書き換えだけで済むので便利です。

同じシステムで途中からDBMSが変わるという事はほとんどないと思いますが、このコードを他の開発案件でも流用できると考えると強力な利点になる事はわかると思います。
一度DB周りの開発をやってしまえば、DBへ接続したり、接続出来なかったときのエラー処理だったりという部分はもう二度と再開発しなくて済むわけです。

投稿2016/09/28 01:37

kunai

総合スコア5405

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

PDO PHP Data Objects
には手続き型は存在しません。

私としては初心者にPDOを推奨します。
理由として
mysql関数の方を使ってしまう
手続き型とオブジェクト型の書き方の違いを理解せずに、両方を混ぜてしまう
mysqliの処理をmysqlの書き方で書いてしまう。

というような勘違いが結構多発しています。
teratailでも割と頻繁にあります。

投稿2016/09/28 03:32

date

総合スコア1820

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

ちょっと調べました

同じようなメソッドで比較すると
・PDOはどちらかというと手続き向き
・mysqliはオブジェクト指向向き
と捉えます。

pdoはトランザクションを開始してクローズする必要があるようです。
mysqliは一度newしてインスタンスをつくれば再利用できそうです。

pdo
http://php.net/manual/ja/pdo.commit.php

mysqli
http://php.net/manual/ja/mysqli.commit.php

以上参考になればと思います

投稿2016/09/28 01:42

shotakeu

総合スコア386

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

shotakeu

2016/09/28 01:45

【追記】 kunaiさんの言われてる通りpdoは汎用的です。mysqliはその名の通りmysql専用っぽいです。
shotakeu

2016/09/28 01:47

【追記2】 pdoであってもそういう汎用クラスを作れば充分オブジェクト指向に対応できます。 語弊がありそうだったので追記します。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問