13

現在、mysql の代わりに Microsoft Access をプライマリ データベースとして使用してサイトを開発するという新たな課題に直面しています。以前に MS Access を使用したことがありません。使用方法についてのガイダンスが必要です。W3schools で w3c Web サイトを調べましが、コードでエラーが発生します

警告: odbc_connect() [function.odbc-connect]: SQL エラー: [Microsoft][ODBC Driver Manager] データ ソース名が見つからず、デフォルト ドライバーが指定されていません。C:\Users\NNALI\Desktop\ の SQLConnect で 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);
?>

上記は私が使用したコードです

4

6 に答える 6

14

新しいプロジェクトを始めたばかりの場合は、古い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";
}

注:上記のUnicode 文字をサポートする必要がない場合は、上記の方法で十分ですU+00FF。そのような文字をサポートする必要がある場合はPDO_ODBC古いodbc_関数も機能しません。この回答で説明されているソリューションを使用する必要があります。

于 2013-11-06T09:41:10.543 に答える