http://www.php.net/manual/ja/ref.mysql.php
PHP: MySQL 関数 - Manual
MySQL と、
http://www.php.net/manual/ja/ref.pgsql.php
PHP: PostgreSQL 関数 - Manual
PostgreSQL とで、PHP のインタフェースは似たり寄ったりですので、
「PHP から」ということでの特別な違いは無いでしょう。それよりも、
そもそも「MySQL」と「PostgreSQL」で概念が違うところや、
SQL の方言の部分など、PHP とは無関係に違う点の方が大きい
でしょう。
http://www.dokokano.com/php/php_pear_db.html
PHP4 Pear DBクラスの使い方
さらに PEAR に含まれる DB クラスを使えば、PHP のインタフェース
はの違いはなくなります。
先述のとおり、PHP 自体がもたらす違いは少ないと思います。
強いて言うと、MySQL のインタフェースは最初から使えて、
PostgreSQL のインタフェースは、追加しないと(もしくは、
コンパイルしなおさないと)使えない、というケースがよくある
ので、事前に phpinfo() でチェックしておくぐらいです。
http://pixy.issp.u-tokyo.ac.jp/~ueta/msg00227j.html
a comparison of 4 databases
傾向としては、PostgreSQLは高機能だけれども、多少動作が重い。MySQLは機能がPostgreSQLよりも多少劣るが動作が高速という特徴があります。ですが、現在では両者の差はよほど大規模完璧に近いシステムが求められるような状況でなければでほとんど無いといっていいと思います。またMySQLのほうが世界的にユーザ数が多いので、多くのWebアプリケーションが対応しています。またPHPを利用するWebアプリケーションは世界的にはMySQLに対応していても、PostgreSQLには対応していないというものが多く、国産の特に商用のものについては、逆の傾向があります。ドキュメントについても同様で、PostgreSQLは日本語のドキュメントがそろっており、MySQLは世界的に見れば、PostgreSQLよりも多くのドキュメントがあります。
MySQLは数年前に少し触っただけなんですけど今だと全然多機能ですよね〜。
http://www.hatena.ne.jp/1099646624#
人力検索はてな - PHPからMySQLとPostgreSQLを使うときの違いについて、注意する点はありますか?
URLはダミーです。
PHPに限らない話で、MySQLとPostgreSQLの違いについての注意点ですが、
それぞれのDBMSに依存する部分(関数とか。)に関しては当然注意は必要なのですが、
MySQL(4.0系)にはサブクエリやView、外部キーがありません。(4.1系、5.0系、InnoDB等では対応しているものもあり)
# その分処理が早いわけですが。
ですので、それらが必要な場合はPostgreSQLにするかstableでない(4.1系とか5.0系とか)MySQLを使う必要があります。
このへんはライブラリを使っても吸収できないところなのでご注意ください。
InnoDBっていうのがまだよく分かってないのですが、普通MySQLと言った場合には含まれないんでしょうか?
http://www.atmarkit.co.jp/flinux/special/mysql5/mysql5b.html
@IT:エンタープライズ市場に向かうMySQL 5.0[前編](2/3)
URLはMySQLのバージョンによる機能の違いがわかりやすい記事です。
>InnoDBっていうのがまだよく分かってないのですが、普通MySQLと言った場合には含まれないんでしょうか?
どうやってMySQLをインストールするかにもよりますが、ソースからコンパイルする場合はconfigureのときに--with-innodbとしてやらないとInnoDBのテーブルは作れません。
バイナリからインストールする場合だと4.0以降はInnoDB対応で配布されているようですので、特に何もする必要はありません。
なお、MySQLをInnoDBに対応させても何も設定せずに普通にテーブルを作っただけではMyISAMになってしまいます。
1点、かなり大きなことを忘れてましたが、InnoDBじゃないとトランザクション処理ができなかったはずなのでご注意ください。
MySQLは手軽ってイメージがあったのですが使える機能を考慮してたら複雑ですね・・。
普通にデータベースを作ったり、テーブルを作ったりはfetch_rowで行指定があるかないかぐらいでほとんど変わらないと思います。
DBの情報を得る時のやり方はゼンゼン違うので要注意かと
例:データベース一覧、テーブルの一覧、フィールドデータなど
InnoDBなどのテーブルの型についてはMYSQLのマニュアルの上記のページに詳しく書かれています。
行指定が出来ないっていうことは一度読み出したらメモリから解放されるんですかね〜。
上のサイトはよく見てますが考えないといけないこと多いですね。
PHPのマニュアルを見る限りではエラーの取得の仕方も違うようですが・・・。
PHP: Hypertext Preprocessor
> 行指定が出来ないっていうことは一度読み出したらメモリから解放されるんですかね〜。
PHPでPostgreSQL, MySQLのどちらでもfetch_row()はほとんど使わないはずです。行を連想配列で取り扱った方が便利なので普通はfetch_assoc()を使います。
どちらもクエリ結果は全てメモリに格納されます。# DBのAPIレベルで。PHP変数としてはfetchした時点でコピーが作成されます。
# ただしMySQLのunbuffered queryは別です。マニュアルを見て下さい。
あぁ、そうなんですか。
ありがとうございます。
上記のfetch_row()などでも引数が違うのが不思議なんですよね。
メモリの扱い方などが違うんでしょうか。