<?
$x=odbc_connect("test","test","test");
?>
Чтобы передать запрос в СУБД, мы можем воспользоваться функцией odbc_exec:
<?
$res=odbc_exec($x,"create table test (f1 integer, f2 varchar(10))");
$res=odbc_exec($x,"insert into test (f1,f2) values(1,'qwerty')");
$res=odbc_exec($x,"insert into test (f1,f2) values(2,'asdfgh')");
?>
Если после выполнения этого примера открыть базу test в MS Access, то мы обнаружим, что там появилась новая таблица test с полями f1 и f2 целочисленного и строкового типов соответственно; в таблице будут две записи с данными, которые были указаны в запросе.
К сожалению, не все функции для работы с ODBC корректно работают с MS Access, например, это функции odbc_num_rows и odbc_fetch_array. Так, в той версии PHP, что установлена на моём компьютере, PHP вообще выдаёт сообщение, что функция odbc_fetch_array ему не известна. Но эти проблемы решаются, если описать две следующие функции и использовать их вместо ранее упоминавшихся:
<?
function xodbc_num_rows($sql_id, $CurrRow = 0)
{
$NumRecords = 0;
odbc_fetch_row($sql_id, 0);
while (odbc_fetch_row($sql_id))
{
$NumRecords++;
}
odbc_fetch_row($sql_id, $CurrRow);
return $NumRecords;
}
function xodbc_fetch_array($result, $rownumber=-1) {
if ($rownumber < 0) {
odbc_fetch_into($result, &$rs);
} else {
odbc_fetch_into($result, &$rs, $rownumber);
}
foreach ($rs as $key => $value) {
$rs_assoc[odbc_field_name($result, $key+1)] = $value;
}
return $rs_assoc;
}
$res=odbc_exec($x,"select * from test");
$cnt=xodbc_num_rows($res);
?>
<table border=1 cellspacing=0 cellpadding=4>
<tr><td>f1</td><td>f2</td></tr>
<?
for ($i=0;$i<$cnt;$i++) {
$row=xodbc_fetch_array($res,$i+1);
echo '<tr><td>'.$row['f1'].'</td><td>'.$row['f2'].'</td></tr>';
}
?>
</table>
Таким образом, теперь, если у Вас возникнет задача подключения к базе MS Access из PHP, Вы смело сможете её решить в кратчайшие сроки...
взято http://www.citforum.ru/
Спустя 4 минуты, 22 секунды (3.03.2009 - 23:02) kirik написал(а):
и не говори!
Спустя 11 часов, 45 минут, 32 секунды (4.03.2009 - 10:48) Ramzess написал(а):
Дополнтельно ответы, критики будут???