PHP and MS Access

后端 未结 5 1319
旧巷少年郎
旧巷少年郎 2020-12-04 01:30

How can we connect a PHP script to MS Access (.mdb) file?

I tried by including following PHP code:

$db_path =          


        
相关标签:
5条回答
  • 2020-12-04 01:52

    In the filename, I'm looking at '\WebUpdate\' - it looks like you have one backslash at the beginning at two at the end. Are you maybe missing a backslash at the beginning?

    0 讨论(0)
  • 2020-12-04 01:54

    it looks like a problem with the path seperators. ISTR that you have to pass backslashes not forward slashes

    The following works for me - with an MDB file in the webroot called db4

        $defdir = str_replace("/", "\\", $_SERVER["DOCUMENT_ROOT"]);
        $dbq    =    $defdir . "\\db4.mdb";
    if    (!file_exists($dbq)) { die("Database file $dbq does not exist"); }
    
        $dsn = "DRIVER=Microsoft Access Driver (*.mdb);UID=admin;UserCommitSync=Yes;Threads=3;SafeTransactions=0;PageTimeout=5;MaxScanRows=8;MaxBufferSize=2048;FIL=MS Access;DriverId=25;DefaultDir=$defdir;DBQ=$dbq";
        $odbc_conn = odbc_connect($dsn,"","")
            or die("Could not connect to Access database $dsn");
    
    0 讨论(0)
  • 2020-12-04 02:00

    Here's a sample for a connect and a simple select...

    <?php
    $db_conn = new COM("ADODB.Connection");
    $connstr = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=". realpath("./Northwind.mdb").";";
    $db_conn->open($connstr);
    $rS = $db_conn->execute("SELECT * FROM Employees");
    $f1 =  $rS->Fields(0);
    $f2 =  $rS->Fields(1);
    while (!$rS->EOF)
    {
        print $f1->value." ".$f2->value."<br />\n";
        $rS->MoveNext();
    }
    $rS->Close();
    $db_conn->Close();
    ?> 
    
    0 讨论(0)
  • 2020-12-04 02:01

    I'm not certain if this is a violation of best practices or security, but I would like to throw out this suggestion:

    set up an ODBC connection and include the database's password in the odbc advance settings. give the odbc conn a DSN name then save.

    in your code, just set up the connection like:

    try {
      $conn = @odbc_connect("DSNName", "", "", "SQL_CUR_USE_ODBC");
      // un and pw parameters are passed as empty strings since the DSN 
      // has knowledge of the password already.
      // 4th parameter is optional
    
      $exec = @odbc_exec($conn, $insert) or die ("exec error");
      echo "success!";
    }
    catch (Exception $e) {
      echo $e->getMessage();
    } // end try catch
    
    0 讨论(0)
  • 2020-12-04 02:07
    $db_path = $_SERVER['DOCUMENT_ROOT'] . '\WebUpdate\\' . $file_name . '.mdb';
    

    replace the backslashes with slashes use . '/WebUpdate/' .

    0 讨论(0)
提交回复
热议问题