現在、mysqlの代わりにMicrosoft Accessをプライマリデータベースとして使用してサイトを開発するという新しい課題に直面しています。以前にMS Accessを使用したことがないので、その方法についてのガイダンスを希望します。w3cのWebサイトを W3schools で検索しましたが、コードでエラーが発生します。
警告:odbc_connect()[function.odbc-connect]:SQLエラー:[Microsoft] [ODBC Driver Manager]データソース名が見つからず、デフォルトのドライバーが指定されていない、SQLConnectのC:\ Users\NNALI\Desktop \のSQL状態IM002 2行目のroot\test.php
このエラー
警告:odbc_exec()は、パラメーター1がリソースであると想定しています。ブール値は、4行目のC:\ Users\NNALI\Desktop\Breweries\root\test.phpで指定されています
私は立ち往生しており、何をすべきかわからない、これに関するすべての助けに感謝します。
<?php
$conc = odbc_connect("northwind", "","");
$sql = "Select * From customers";
$rs = odbc_exec($conn, $sql);
?>
上記は私が使用したコードです
新しいプロジェクトを始めたばかりの場合は、古いodbc_exec()
アプローチの代わりにPDOを使用することをお勧めします。以下に簡単な例を示します。
<?php
$bits = 8 * PHP_INT_SIZE;
echo "(Info: This script is running as $bits-bit.)\r\n\r\n";
$connStr =
'odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};' .
'Dbq=C:\\Users\\Gord\\Desktop\\foo.accdb;';
$dbh = new PDO($connStr);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql =
"SELECT AgentName FROM Agents " .
"WHERE ID < ? AND AgentName <> ?";
$sth = $dbh->prepare($sql);
// query parameter value(s)
$params = array(
5,
'Homer'
);
$sth->execute($params);
while ($row = $sth->fetch()) {
echo $row['AgentName'] . "\r\n";
}
問題は単純なタイプミスです。 2行目で変数に「conc」という名前を付けましたが、4行目で「conn」を参照しました。
<?php
$dbName = $_SERVER["DOCUMENT_ROOT"] . "products\products.mdb";
if (!file_exists($dbName)) {
die("Could not find database file.");
}
$db = new PDO("odbc:DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=$dbName; Uid=; Pwd=;");
接続に成功すると、SQLコマンドをPHPから実行してデータベースの読み取りまたは書き込みを行うことができます。ただし、「PDOException Could not find driver」というエラーメッセージが表示される場合は、PDO ODBCドライバがインストールされていません。phpinfo()関数を使用して、PDOへの参照についてインストールを確認してください。
PDO ODBCのエントリが存在しない場合、インストールにPDO拡張機能とODBCドライバーが含まれていることを確認する必要があります。 php.iniのextension = php_pdo_odbc.dllの行で、Apacheを再起動してから、データベースへの接続を再試行してください。
ドライバーがインストールされていると、phpinfo()からの出力には次のような情報が含まれているはずです: https://www.diigo.com/item/image/5kc39/hdse
Odbcコネクタが適切に作成されていますか?ステップ「Create ODBC Connection」を再度チェックしない場合」
[〜#〜] edit [〜#〜]:DSNのない接続fromphp.net
// Microsoft Access
$connection = odbc_connect("Driver={Microsoft Access Driver (*.mdb)};Dbq=$mdbFilename", $user, $password);
あなたの場合、ファイル名がnorthwindでファイル拡張子がmdbである場合があります。
$connection = odbc_connect("Driver={Microsoft Access Driver (*.mdb)};Dbq=northwind", "", "");