Просто рабочий конспект
1. Примеры коннекта:
putenv("NLS_LNAG=AMERICAN_CIS.CL8MSWIN1251");
$link = oci_connect( "user" , "password" , "//192.168.1.10:1521/orcl" );
if (!$link)
{
$err = oci_error ();
$error = 'Ошибка подключения: ' . $err ['message'];
include 'error.html.php';
exit();
}
Если без IP - через файл tnsnames.ora:
$link = oci_connect( "user" , "password" , "testdb" );
testdb должна быть прописана в файле tnsnames.ora
2. SQL - запросы.
Сначала - подготовка - oci_parse() затем исполнение oci_execute():
$sql = 'select TO_CHAR(to_oradate(start_date),' . "'MM.DD.YYYY'" .') as dt,t1.dbsessionid as id,novellname as name
from sys#locks t1,x$activeusers t2 where t1.dbsessionid =t2.dbsessionid order by novellname'; $stid = oci_parse($link, $sql); // не проверяем результат - опция не работает
$result = oci_execute($stid, OCI_DEFAULT);
3. Oracle возвращает имена полей - в верхнем регистре!
while ($row = oci_fetch_assoc($stid))
{
$users[] = array('dt' => $row['DT'], 'id' => $row['ID'], 'name' => $row['NAME']);
}
4. Обработка ошибок:
if (!$result) {
$e = oci_error($stid);
$error = 'Error : ' . htmlentities($e['message']) . ' : ' . htmlentities($e['sqltext']);
include 'error.html.php';
exit();
}
Именно $stid а не $link . Т.е переменная, возвращаемая oci_parse().Ярлыки: php oracle examples Подпишись на новости PHP по e-mail |
Отправить комментарий