Class dosyası

<?php
class mdb
{
  var $RS = 0;
  var $ADODB = 0;
  
  var $RecordsAffected;
  
  var $strProvider = 'Provider=Microsoft.Jet.OLEDB.4.0';
  var $strMode     = 'Mode=ReadWrite';
  var $strPSI      = 'Persist Security Info=False';
  var $strDataSource  = '';
  var $strConn     = '';
  var $strRealPath = '';
  
  var $recordcount = 0;
  var $ok = false;
  
  
  /**
  * Constructor needs path to .mdb file
  *
  * @param string $dsn = path to *.mdb file
  * @return boolean success 
  */
  function mdb( $dsn='Please enter DataSource!' )
  {
    $this->strRealPath = realpath( $dsn );
    if( strlen( $this->strRealPath ) > 0 )
    {
      $this->strDataSource = 'Data Source='.$this->strRealPath;
      $result = true;
    }
    else
    {
      echo "<br>mdb::mdb() File not found $dsn<br>";
      $result = false;
    }
    
    $this->RecordsAffected = new VARIANT();
    
    $this->open();
    
  } // eof constructor mdb()
  
  
  function open( )
  {
    if( strlen( $this->strRealPath ) > 0 )
    {
  
      $this->strConn = 
        $this->strProvider.';'.
        $this->strDataSource.';'.
        $this->strMode.';'.
        $this->strPSI;
        
      $this->ADODB = new COM( 'ADODB.Connection' );
      
      if( $this->ADODB )
      {
        $this->ADODB->open( $this->strConn );
        
        $result = true;
      }
      else
      {
        echo '<br>mdb::open() ERROR with ADODB.Connection<br>'.$this->strConn;
        $result = false;
      }
    }
    
    $this->ok = $result;
    
    return $result;
  } // eof open()
  
  
  /**
  * Execute SQL-Statement
  * @param string $strSQL = sql statement
  * @param boolean $getrecordcount = true when a record count is wanted
  */
  function execute( $strSQL, $getrecordcount = false )
  {

    $this->RS = $this->ADODB->execute( $strSQL, &$this->RecordsAffected );
    
    if( $getrecordcount == true )
    {

      $this->RS->MoveFirst();
      $this->recordcount = 0;
      
      # brute force loop
      while( $this->RS->EOF == false )
      {
        $this->recordcount++;
        $this->RS->MoveNext();
      }
      $this->RS->MoveFirst();

    }
    
        
  } // eof execute()
  
  function eof()
  {
    return $this->RS->EOF;
  } // eof eof()
  
  function movenext( )
  {
    $this->RS->MoveNext();
  } // eof movenext()
  
  function movefirst()
  {
    $this->RS->MoveFirst();
  } // eof movefirst()
  
  function close()
  {
   
    @$this->RS->Close(); // Generates a warning when without "@"
    $this->RS=null;
  
    @$this->ADODB->Close();
    $this->ADODB=null;
  } // eof close()
  
  function fieldvalue( $fieldname )
  {
    return $this->RS->Fields[$fieldname]->value;
  } // eof fieldvalue()
  
  function fieldname( $fieldnumber )
  {
    return $this->RS->Fields[$fieldnumber]->name;
  } // eof fieldname()
  
  function fieldcount( )
  {
    return $this->RS->Fields->Count;
  } // eof fieldcount()  
  
} // eoc mdb
?>
Kullanım Şekli

<?php
#
# This is some wired example.
# You cannot use it out of the box.
#
# Use your own mdb filename and 
# your own tablename and 
# your own fieldnames.
#
# You really need a Windows Server and a mdb file on it to have it work!
# Big chance it does not work with Linux or Unix - but tell me if it does.
#
# This example opens the mdb once and then reads it twice.
# I know about 2 ways to get the values, so I show them all.
# Maybe there is a speed difference.
#
# Works on a Win 2000 server with PHP 4.3.4 and Microsoft-IIS/5.0
#

include 'class_mdb.php';

$mdb = new mdb('mymdbfile.mdb'); // your own mdb filename required
$mdb->execute('select * from table'); // your own table in the mdb file

#
# first example: using fieldnames
# 

while( !$mdb->eof() )
{
  echo $mdb->fieldvalue('description'); // using your own fields name
  echo ' = ';
  echo $mdb->fieldvalue( 1 ); // using the fields fieldnumber
  echo '<br>';
  $mdb->movenext();
}

echo '<br><hr><br>';

#
# Going back to the first recordset for the second example
#
$mdb->movefirst();

#
# This works, too: Make each Field an object. The values change
# when the data pointer advances with movenext().
# 
$url = $mdb->RS->Fields(1);
$bez = $mdb->RS->Fields(2);
$kat = $mdb->RS->Fields(3);

while( !$mdb->eof() )
{
  # works!
  echo $bez->value;
  echo ' = ';
  echo $url->value;
  echo '<br>';
  $mdb->movenext(); 
}

$mdb->close(); 

?>
------------------------------------------------------------------------

Alternatif access'e bağlantı yöntemi

<?
$sube = $_POST['sube'];
$conn = new COM("ADODB.Connection") or die("ADODB başlatılamıyor"); 
$conn->Open("DRIVER={Microsoft Access Driver (*.mdb)};DBQ=d:\Database2.mdb"); 
$rs = $conn->Execute("SELECT * FROM MAASKART where SUBENO like '$sube' "); 
echo "<TABLE border='1'><TR><TH colspan='6'>Veriler</TH><TR>"; 
echo "<TR>"; 
echo "<TH>" . $rs->Fields[0]->name . "</TH>"; 
echo "<TH>" . $rs->Fields[1]->name . "</TH>"; 
echo "<TH>" . $rs->Fields[2]->name . "</TH>"; 
echo "<TH>" . $rs->Fields[3]->name . "</TH>"; 
echo "<TH>" . $rs->Fields[4]->name . "</TH>"; 
echo "<TH>" . $rs->Fields[5]->name . "</TH>"; 
echo "</TR>";
while (!$rs->EOF) 
{ 
echo "<tr>"; 
echo "<td>" . $rs->Fields[0]->value . " </td>"; 
echo "<td>" . $rs->Fields[1]->value . " </td>"; 
echo "<td>" . $rs->Fields[2]->value . " </td>"; 
echo "<td>" . $rs->Fields[3]->value . " </td>"; 
echo "<td>" . $rs->Fields[4]->value . " </td>"; 
echo "<td>" . $rs->Fields[5]->value . " </td>"; 
echo "</tr>"; 
$rs->MoveNext(); 
}
echo "</TABLE>";
$rs->Close(); 
$conn->Close(); 

$rs = null; 
$conn = null; 
?>