php+access をデータベースに接続するには、一般に 2 つの一般的な方法があります
1. odbc ドライバーを作成し、PHP の odbc_connect() 関数を使用して接続します
クリップボードにコピー引用コンテンツ: [www.bkjia.com] 例: $connstr=DRIVER={Microsoft Access Driver (*.mdb)} DBQ=".$db;2. oledb を使用して接続し、open メソッドを呼び出して開きます
例:
テストを繰り返した結果、データベースのパスが原因であることが判明しました。ASP を開発するとき、データベースのアドレスを相対パスとして記述し、server.mappath() 関数を使用してその絶対パスを取得していました。
これは、PHP の開発時にも継続されました。例: $db=realpath("../db.mdb"); のように、データベースの相対パスを加えたものを使用します。
ただし、asp の include 関数と php の include 関数は、インクルードされたファイルの処理方法が異なるようで、php がデータベースに接続するために異なるディレクトリに conn.php ファイルをインクルードすると、「一般的なエラーでレジストリ キーワードを開けません」が発生します。
またはメッセージ「ソース:プロバイダ
説明:」を含むキャッチされない例外。 ' エラー。
php接続アクセスデータベースFAQ
エラー1:
クリップボードにコピー
データベース パスでエラーが発生しました、
1. データベースのパスが realpath() 関数と相対パスを使用して取得されたかどうかを確認します。
例: $db=realpath("../db.mdb");その場合は、$_SERVER['DOCUMENT_ROOT'] を使用して Web サイトのルートを取得し、データベース アドレスを追加するなど、別の方法を使用してデータベース アドレスを取得してください。
例:$db=$_SERVER['DOCUMENT_ROOT']."db.mdb";
3. 接続方法を変更する Microsoft の odbc ドライバーには不安定なバグがあり、このようなエラーが発生する可能性があるため、Microsoft 自体が odbc データ ソース接続方法のサポートを放棄し、oledb 方法を使用することを推奨していると言われています。接続文字列を次のように変更します:
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=".$db;
エラー 2:クリップボードにコピー引用コンテンツ: [www.bkjia.com]
致命的なエラー: メッセージ「ソース:プロバイダ
説明:」を含む例外がキャッチされませんでした。 ' in E:wwwroot\phpwebconn.php:7 スタック トレース: #0 E:wwwroot\phpwebconn.php(7): com->Open('Provider=Micros...') #1 ...... ……
このエラーは、データベースへの接続に oledb を使用していることを示しており、データベースのパスによっても発生します。
解決策は上記と同じで、$_SERVER['DOCUMENT_ROOT']."db.mdb を使用します。 "; データベースアドレスを取得するメソッド
エラー 3:
クリップボードにコピー引用コンテンツ: [www.bkjia.com] 警告: odbc_connect() [function.odbc-connect]: SQL エラー: [Microsoft][ODBC Driver Manager] データ ソース名が見つからず、デフォルトのドライバーが指定されていません。E:wwwroot\phpwebconn php オンラインの SQLConnect で SQL 状態 IM002 です。 8odbc ドライバーを使用して接続されたデータベースの場合、接続文字列が正しく書かれていないことがエラーの原因である可能性があります。完全な接続文字列は次のようになります。
クリップボードにコピー引用コンテンツ: [www.bkjia.com] $db=$_SERVER['DOCUMENT_ROOT']."db.mdb"; $connstr="Driver={Microsoft Access Driver (*.mdb)};Dbq=$db;Uid=Admin;Pwd=pass"; $connid=odbc_connect($connstr,"admin","pass",SQL_CUR_USE_ODBC) または die("データベースを開けませんでした! 管理者に連絡してください");クリップボードにコピー
引用コンテンツ: [www.bkjia.com] $connstr="Driver={Microsoft Access Driver (*.mdb)};Dbq=$db"; $connid=odbc_connect($connstr,"","",SQL_CUR_USE_ODBC) または die("データベースを開けませんでした。お問い合わせください。管理者"); エラー 4:クリップボードにコピー
引用コンテンツ: [www.bkjia.com] 致命的なエラー: キャッチされない例外 'com_Exception' メッセージ 'Source: ADODB.Connectionクリップボードにコピー
引用コンテンツ: [www.bkjia.com] $db=$_SERVER['DOCUMENT_ROOT']."db.mdb"; $conn=new com("ADODB.connection"); $connstr="Provider=Microsoaft.Jet.OLEDB.4.0;データ ソース=" .$db; $conn->Open($connstr);