ТОП-10 популярных



Для работы с вещественными числами в MySQL предусмотрено три типа данных - это типы FLOAT, DOUBLE, DECIMAL. Числовой тип FLOAT...

НОУТБУК с блестящим экраном
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...

БОЛЬШЕ БОЛЬШИХ LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...

Больше больших LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...

Магнито-оптический дисковод DynaMO
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...

Иди и пиши. TravelMate C100
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...

ПОД ЛИТЕРОЙ «N»
Aтаку LCD-мониторов не остановить, а масштабы этого наступления даже немного пугают. Судите сами — многие пользователи только начинают приглядываться к новому для...


Для длинных строк, т.е. строк длиннее 255 символов, в MySQL предусмотрены типы BLOB (Binary Large Object, большой двоичный объект) и...

Размер объему не помеха.
С тех пор как компания Fujitsu отказалась от производства жестких дисков для настольных компьютеров, многие пользователи начали забывать о том,...


Какую только информацию мы не помещаем на компакт-диски: резервные копии важных данных, музыку, фильмы... Многие полагают, что главное - «купить...

PHP. Базы данных. Часть Двадцать Третья.


01-04-2015

integer ocicolumnprecision(resource statement, value column)
Функция ocicolumnprecision возвращает точность заданного столбца. Столбцы можно задавать по номерам, и в этом случае они нумеруются с единицы. Кроме того, столбцы можно задавать по их именам.
integer ocicolumnscale(resource statement, value column)
Функция ocicolumnscale возвращает точность заданного столбца. Столбцы можно задавать по номерам, и в этом случае они нумеруются с единицы. Кроме того, столбцы можно задавать по их именам. 
integer ocicolumnsize(resource statement, value column)
Функция ocicolumnsize возвращает размер заданного столбца. Столбцы можно задавать по номерам, и в этом случае они нумеруются с единицы. Кроме того, столбцы можно задавать по их именам.
string ocicolumntype(resource statement, value column)
Функция ocicolumntype возвращает тип заданного столбца. Столбцы можно задавать по номерам, и в этом случае их нумерация начинается с единицы. Кроме того, типы столбцов можно задавать по их именам. Имя типа столбца будет одним из следующих: BFILE, BLOB, CHAR, CLOB, DATE, LONG RAW, LONG, NUMBER, RAW, REFCURSOR, ROWID или VARCHAR. В противном случае возвращается код, представляющий тип данных.
integer ocicolumntyperaw(resource statement, value column)
Функция ocicolumtyperaw возвращает внутренний номер, используемый в СУБД Oracle, для обозначения типа заданного столбца. Столбцы можно задавать по номерам, и в этом случае их нумерация начинается с единицы.
boolean ocicommit(resource connection)
Функция ocicommit выполняет все операторы, входящие в данную транзакцию. По умолчанию операторы выполняются сразу же. Если функция ociexecute вызывается с параметром OCI_DEFAULT, эта функциональность отменяется.
boolean ocidefinebyname(resource statement, string column, reference variable, integer type)
Функция ocidefinebyname (листинг 17.35) связывает столбец с переменной PHP. При выполнении оператора значение столбца копируется в переменную. Аргумент statement должен быть целым числом, возвращаемым функцией ociparse. Имя столбца должно быть представлено в верхнем регистре, в противном случае Oracle его не распознает. Однако нераспознанные имена столбцов не приводят к ошибкам. Аргумент type необходим только при обработке абстрактного типа данных, например ROWID. Абстрактный тип данных требует перед вызовом функции ocidefinebyname предварительного вызова функции ocinewdescriptor. Если аргумент type не указывается, переменные устанавливаются в виде строк и завершаются пустыми символами.

| Листинг 17.35. Функция ocidefinebyname_
<?php
// подключиться к базе данных
$Link = ocilogon("scott", "tiger");
// собрать запрос
$Query = "SELECT ENAME, HIREDATE " .
"FROM emp " .
"WHERE JOB='CLERK' "; // проанализировать запрос $Statement = ociparse($Link, $Query); // связать два столбца с переменными 
ocidefinebyname($Statement, "ENAME", $EmployeeName);
ocidefinebyname($Statement, "HIREDATE", $HireDate);
// выполнить запрос
ociexecute($Statement);
// выбрать строки
while(ocifetch($Statement))
{
print("$EmployeeName был принят на работу $HireDate<br>n");
}
// освободить оператор ocifreestatement($Statement); // закрыть соединение ocilogoff($Link);
?>

array ocierror(resource identifier)
Функция ocierror возвращает ассоциативный массив с описанием последней ошибки, сгенерированной СУБД Oracle. Для получения кода ошибки, произошедшей на определенном шаге выполнения запроса, нужно задать необязательный аргумент identifier с ресурсом statement или connection. Если ошибки нет, эта функция возвращает значение FALSE. В противном случае возвращаемый массив содержит два элемента: code и message.
boolean ociexecute(resource statement, integer mode)
Функция ociexecute предназначена для выполнения SQL-оператора. Аргумент mode является необязательным и управляет выполнением оператора как транзакции. По умолчанию задано значение OCI_COMMIT_ON_EXECUTE. Если транзакцию не нужно выполнять сразу же после выполнения оператора, задается значение OCI_DEFAULT. Каждый раз при вызове функции ociexecute PHP устанавливает флаг autocommit. При наличии серии операторов, которые необходимо выполнять сразу же, для каждого из них обязательно указывайте аргумент mode со значением OCI_DEFAULT.
boolean ocifetch(resource statement)
Функция ocifetch (листинг 17.36) подготавливает следующую строку данных к чтению с помощью функции ociresult. Если строк больше не осталось, возвращается значение FALSE.

| Листинг 17.36. Функция ocifetch_
<?php
// подключиться к базе данных $Link = ocilogon("scott", "tiger"); // проверить соединение if($Error = ocierror())
{
die('<p style="color: red">Неуспешное соединение--' . $Error["message"] . "</p>");
}
// создать запрос 
$Query = "SELECT * FROM emp "; // анализ запроса
$Statement = ociparse($Link, $Query);
// выполнение запроса
ociexecute($Statement);
// проверка выполнения запроса
if($Error = ocierror($Statement))
{
die('<p style="color: red"> Неуспешное выполнение--' $Error["message"] .
"</p>");
}
// начало HTML- таблицы print("<table border="1">n");
//сформировать заголовки из информации о столбцах print("<tr>n");
for($i=1; $i <= ocinumcols($Statement);
{
print("<th>" .
ocicolumnname($Statement, $i) . "<br>" . ocicolumntype($Statement, $i) .
"(" . ocicolumnsize($Statement, $i) . ")<br>" . ocicolumnprecision($Statement, $i) . "<br> " . ocicolumnscale($Statement, $i) .
"</th>n");
}
print("</tr>n");
// выбрать каждую строку
while(ocifetch($Statement))
{
print("<tr>n");
//проход по каждому столбцу
for($i=1; $i <= ocinumcols($Statement);
{
//напечатать строку типа "<td>SMITH</td>"
print("<td>");
if(ocicolumnisnull($Statement,
{
print("(null)");
}
else
{
print(ociresult($Statement,
}
print("</td>n");
}
print("</tr>n");
}
// закрыть таблицу
print("</table>n");
// освободить оператор
ocifreestatement($Statement);
// закрыть соединение
ocilogoff($Link);
?>

Понравился материал? Поделитесь с друзьями!



<< Предыдущая статьяСледующая статья >>
PHP. Базы данных. Часть Двадцать Вторая. PHP. Базы данных. Часть Двадцать Четвёртая.