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;
?>