このセクションでは PHP とデータベースとの関係に関する一般的な質問を 扱います。なんと! PHP は事実上あらゆるデータベースにアクセスすることが できます。
Unix マシン上では、PDO_ODBC や Unified ODBC API が使えます。
Windows マシン上では、PDO_SQLSRV や SQLSRV も使えます。
次の質問に対する回答も参照してください。
はい。もし全て (PHP と Microsoft Access) を Windows9x/Me/NT/2000 上で動作させるのであり、ODBC と Microsoft が提供する Microsoft Access 用 ODBC ドライバ が使用できる状態ならば、 すべての必要なツールは揃っています。
Unix で PHP を動作させて Windows マシンで動作する MS Access に接続したい場合には Unix ODBC ドライバが必要です。» OpenLink Software が Unix ベースの ODBC ドライバを提供しています。
他には、Microsoft SQL Server に ODBC ドライバを使用してデータを 保存するという手段もあります。これによって、Microsoft Access (ODBC を使用します) と PHP (組み込まれているドライバを使用します) でデータに アクセスすることができます。また、Microsoft Access と PHP 両者共に 解釈可能な中間ファイル(例えば単層からなるファイルや、dBase データベース等)を使用する手もあります。これに関しては OpenLink Software の Tim Hayes が以下のように述べています。
PHP からじかに ODBC ドライバが使用できる場合(つまり OpenLink の ドライバを使用している場合)には、他のデータベースを中継手段として 用いることはよいアイデアとは言えない。どうしても中間ファイルが 必要な場合のために、OpenLink は NT、Linux、そして他の Unix 用の Virtuoso(仮想データベースエンジン)をリリースした。私たちの » ウェブサイトを 訪れてもらえれば、無料でダウンロードできる。
うまくいくことが分かってるもう一つの方法は、MySQL と Windows 用の MyODBC ドライバを利用してデータベースを同期する方法です。Steve Lawrence が言うには、
Tips and Tricks(役に立つヒント):
現在、MySQL 用の拡張モジュールは 3 種類用意されています。 MySQL API の選択 にあるとおりです。 古い API は使ってはいけません。PHP 5.5.0 以降では非推奨になっており、PHP 7.0.0 から本体に同梱されなくなって PECL に移ります。 でも、今後新しく書くコードでは mysqli か PDO_MySQL を使うことを強く推奨します。
今までのコードの移行用スクリプトは、今のところ用意されていません。 しかし、mysqli の API には手続き型とオブジェクト指向型の 2 種類が用意されており、 手続き型の API は ext/mysql と似ています。
複数の拡張モジュールを混ぜて使うことはできません。つまり、 たとえば mysqli のコネクションを PDO_MySQL や ext/mysql に渡しても動作しないということです。
あなたは値が 0 である結果(result)ID を指定しようとしています。0 は あなたのクエリが何らかの理由で失敗したことを示しています。結果 (result)ID を使用する前に、クエリを送信したあとのエラーをチェック する必要があります。以下のようなコードが正しい方法です。
<?php
$result = mysql_query("SELECT * FROM tables_priv");
if (!$result) {
echo mysql_error();
exit;
}
?>
<?php
$result = mysql_query("SELECT * FROM tables_priv")
or die("Bad query: " . mysql_error());
?>