Вы не зарегистрированы? Нажмите здесь для регистрации.
Забыли пароль? Запросите новый здесь.
|
Вы должны авторизироваться, чтобы добавить сообщение.
|
|
|
Последние активные темы форума |
|
oci_new_descriptor
(PHP 5) oci_new_descriptor -- Инициализирует новый дескриптор объекта LOB или FILE
Описаниеobject oci_new_descriptor ( resource connection [, int type] ) oci_new_descriptor() выделяет ресурсы, необходимые для
хранения дескриптора объекта. Аргумент type может
принимать следующие значения: OCI_D_FILE,
OCI_D_LOB или OCI_D_ROWID.
Пример 1. Пример использования oci_new_descriptor()
<?php
/* This script is designed to be called from a HTML form.
* It expects $user, $password, $table, $where, and $commitsize
* to be passed in from the form. The script then deletes
* the selected rows using the ROWID and commits after each
* set of $commitsize rows. (Use with care, there is no rollback)
*/
$conn
=
oci_connect
(
$user
,
$password
);
$stmt
=
oci_parse
(
$conn
,
"select rowid from $table $where"
);
$rowid
=
oci_new_descriptor
(
$conn
,
OCI_D_ROWID
);
oci_define_by_name
(
$stmt
,
"ROWID"
,
$rowid
);
oci_execute
(
$stmt
);
while (
oci_fetch
(
$stmt
)) {
$nrows
=
oci_num_rows
(
$stmt
);
$delete
=
oci_parse
(
$conn
,
"delete from $table where ROWID = :rid"
);
oci_bind_by_name
(
$delete
,
":rid"
,
$rowid
, -
1
,
OCI_B_ROWID
);
oci_execute
(
$delete
);
echo
"$nrows
\n
"
;
if ((
$nrows
%
$commitsize
) ==
0
) {
oci_commit
(
$conn
);
}
}
$nrows
=
oci_num_rows
(
$stmt
);
echo
"$nrows deleted...
\n
"
;
oci_free_statement
(
$stmt
);
oci_close
(
$conn
);
?>
|
<?php
/* This script demonstrates file upload to LOB columns
* The formfield used for this example looks like this
* <form action="upload.php" method="post" enctype="multipart/form-data">
* <input type="file" name="lob_upload" />
* ...
*/
if (!isset(
$lob_upload
) ||
$lob_upload
==
'none'
){
?>
<form action="upload.php" method="post" enctype="multipart/form-data">
Upload file: <input type="file" name="lob_upload" /><br />
<input type="submit" value="Upload" /> - <input type="reset" value="Reset" />
</form>
<?php
} else {
// $lob_upload contains the temporary filename of the uploaded file
// Смотрите также the features section on file upload,
// if you would like to use secure uploads
$conn
=
oci_connect
(
$user
,
$password
);
$lob
=
oci_new_descriptor
(
$conn
,
OCI_D_LOB
);
$stmt
=
oci_parse
(
$conn
,
"insert into $table (id, the_blob)
values(my_seq.NEXTVAL, EMPTY_BLOB()) returning the_blob into :the_blob"
);
oci_bind_by_name
(
$stmt
,
':the_blob'
, &
$lob
, -
1
,
OCI_B_BLOB
);
oci_execute
(
$stmt
,
OCI_DEFAULT
);
if (
$lob
->
savefile
(
$lob_upload
)){
oci_execute
(
$conn
);
echo
"Blob successfully uploaded\n"
;
}else{
echo
"Couldn't upload Blob\n"
;
}
oci_free_descriptor
(
$lob
);
oci_free_statement
(
$stmt
);
oci_close
(
$conn
);
}
?>
|
|
Пример 2. Второй пример использования oci_new_descriptor()
<?php
/* Calling PL/SQL stored procedures which contain clobs as input
* parameters (PHP 4 >= 4.0.6).
* Example PL/SQL stored procedure signature is:
*
* PROCEDURE save_data
* Argument Name Type In/Out Default?
* ------------------------------ ----------------------- ------ --------
* KEY NUMBER(38) IN
* DATA CLOB IN
*
*/
$conn
=
oci_connect
(
$user
,
$password
);
$stmt
=
oci_parse
(
$conn
,
"begin save_data(:key, :data); end;"
);
$clob
=
oci_new_descriptor
(
$conn
,
OCI_D_LOB
);
oci_bind_by_name
(
$stmt
,
':key'
,
$key
);
oci_bind_by_name
(
$stmt
,
':data'
,
$clob
, -
1
,
OCI_B_CLOB
);
$clob
->
write
(
$data
);
oci_execute
(
$stmt
,
OCI_DEFAULT
);
oci_commit
(
$conn
);
$clob
->
free
();
oci_free_statement
(
$stmt
);
?>
|
|
Замечание:
В версиях PHP ниже 5.0.0 эта функция называлась
ocinewdescriptor().
В PHP 5.0.0 и выше ocinewdescriptor() является
алиасом oci_new_descriptor(), поэтому вы можете
продолжать использовать это имя, однако это не рекомендуется.
oci_new_descriptor() вернет FALSE в случае ошибки.
|
· Гостей: 22
· Пользователей: 0
· Всего пользователей: 453
· Новый пользователь: ZDA
|
|