upgrade idiorm to php8.1-patched version (aaronpk/idiorm)
This commit is contained in:
+223
-289
@@ -5,15 +5,15 @@ namespace Safe;
|
||||
use Safe\Exceptions\Oci8Exception;
|
||||
|
||||
/**
|
||||
* Binds the PHP array var_array to the Oracle
|
||||
* placeholder name, which points to an Oracle PL/SQL
|
||||
* Binds the PHP array var to the Oracle
|
||||
* placeholder param, which points to an Oracle PL/SQL
|
||||
* array. Whether it will be used for input or output will be determined at
|
||||
* run-time.
|
||||
*
|
||||
* @param resource $statement A valid OCI statement identifier.
|
||||
* @param string $name The Oracle placeholder.
|
||||
* @param array $var_array An array.
|
||||
* @param int $max_table_length Sets the maximum length both for incoming and result arrays.
|
||||
* @param string $param The Oracle placeholder.
|
||||
* @param array $var An array.
|
||||
* @param int $max_array_length Sets the maximum length both for incoming and result arrays.
|
||||
* @param int $max_item_length Sets maximum length for array items. If not specified or equals to -1,
|
||||
* oci_bind_array_by_name will find the longest
|
||||
* element in the incoming array and will use it as the maximum length.
|
||||
@@ -101,10 +101,10 @@ use Safe\Exceptions\Oci8Exception;
|
||||
* @throws Oci8Exception
|
||||
*
|
||||
*/
|
||||
function oci_bind_array_by_name($statement, string $name, array &$var_array, int $max_table_length, int $max_item_length = -1, int $type = SQLT_AFC): void
|
||||
function oci_bind_array_by_name($statement, string $param, array &$var, int $max_array_length, int $max_item_length = -1, int $type = SQLT_AFC): void
|
||||
{
|
||||
error_clear_last();
|
||||
$result = \oci_bind_array_by_name($statement, $name, $var_array, $max_table_length, $max_item_length, $type);
|
||||
$result = \oci_bind_array_by_name($statement, $param, $var, $max_array_length, $max_item_length, $type);
|
||||
if ($result === false) {
|
||||
throw Oci8Exception::createFromPhpError();
|
||||
}
|
||||
@@ -112,8 +112,8 @@ function oci_bind_array_by_name($statement, string $name, array &$var_array, int
|
||||
|
||||
|
||||
/**
|
||||
* Binds a PHP variable variable to the Oracle
|
||||
* bind variable placeholder bv_name. Binding
|
||||
* Binds a PHP variable var to the Oracle
|
||||
* bind variable placeholder param. Binding
|
||||
* is important for Oracle database performance and also as a way to
|
||||
* avoid SQL Injection security issues.
|
||||
*
|
||||
@@ -136,12 +136,12 @@ function oci_bind_array_by_name($statement, string $name, array &$var_array, int
|
||||
* bind variable will be used for input or output is determined at
|
||||
* run-time.
|
||||
*
|
||||
* You must specify maxlength when using
|
||||
* You must specify max_length when using
|
||||
* an OUT bind so that PHP allocates enough memory
|
||||
* to hold the returned value.
|
||||
*
|
||||
* For IN binds it is recommended to set
|
||||
* the maxlength length if the statement is
|
||||
* the max_length length if the statement is
|
||||
* re-executed multiple times with different values for the PHP
|
||||
* variable. Otherwise Oracle may truncate data to the length of the
|
||||
* initial PHP variable value. If you don't know what the maximum
|
||||
@@ -168,16 +168,16 @@ function oci_bind_array_by_name($statement, string $name, array &$var_array, int
|
||||
* SQL statement, as this can be a security risk if unfiltered user
|
||||
* text is concatenated.
|
||||
*
|
||||
* @param resource $statement A valid OCI8 statement identifer.
|
||||
* @param string $bv_name The colon-prefixed bind variable placeholder used in the
|
||||
* @param resource $statement A valid OCI8 statement identifier.
|
||||
* @param string $param The colon-prefixed bind variable placeholder used in the
|
||||
* statement. The colon is optional
|
||||
* in bv_name. Oracle does not use question
|
||||
* in param. Oracle does not use question
|
||||
* marks for placeholders.
|
||||
* @param mixed $variable The PHP variable to be associated with bv_name
|
||||
* @param int $maxlength Sets the maximum length for the data. If you set it to -1, this
|
||||
* @param mixed $var The PHP variable to be associated with param
|
||||
* @param int $max_length Sets the maximum length for the data. If you set it to -1, this
|
||||
* function will use the current length
|
||||
* of variable to set the maximum
|
||||
* length. In this case the variable must
|
||||
* of var to set the maximum
|
||||
* length. In this case the var must
|
||||
* exist and contain data
|
||||
* when oci_bind_by_name is called.
|
||||
* @param int $type The datatype that Oracle will treat the data as. The
|
||||
@@ -307,10 +307,10 @@ function oci_bind_array_by_name($statement, string $name, array &$var_array, int
|
||||
* @throws Oci8Exception
|
||||
*
|
||||
*/
|
||||
function oci_bind_by_name($statement, string $bv_name, &$variable, int $maxlength = -1, int $type = SQLT_CHR): void
|
||||
function oci_bind_by_name($statement, string $param, &$var, int $max_length = -1, int $type = 0): void
|
||||
{
|
||||
error_clear_last();
|
||||
$result = \oci_bind_by_name($statement, $bv_name, $variable, $maxlength, $type);
|
||||
$result = \oci_bind_by_name($statement, $param, $var, $max_length, $type);
|
||||
if ($result === false) {
|
||||
throw Oci8Exception::createFromPhpError();
|
||||
}
|
||||
@@ -335,31 +335,6 @@ function oci_cancel($statement): void
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Unsets connection. The underlying database
|
||||
* connection is closed if no other resources are using it and if it
|
||||
* was created with oci_connect
|
||||
* or oci_new_connect.
|
||||
*
|
||||
* It is recommended to close connections that are no longer needed
|
||||
* because this makes database resources available for other users.
|
||||
*
|
||||
* @param resource $connection An Oracle connection identifier returned by
|
||||
* oci_connect, oci_pconnect,
|
||||
* or oci_new_connect.
|
||||
* @throws Oci8Exception
|
||||
*
|
||||
*/
|
||||
function oci_close($connection): void
|
||||
{
|
||||
error_clear_last();
|
||||
$result = \oci_close($connection);
|
||||
if ($result === false) {
|
||||
throw Oci8Exception::createFromPhpError();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Commits the outstanding transaction for the
|
||||
* Oracle connection. A commit ends the
|
||||
@@ -395,9 +370,11 @@ function oci_commit($connection): void
|
||||
/**
|
||||
* Returns a connection identifier needed for most other OCI8 operations.
|
||||
*
|
||||
* See Connection Handling for
|
||||
* general information on connection management and connection
|
||||
* pooling.
|
||||
* For performance, most applications should use persistent connections
|
||||
* with oci_pconnect instead
|
||||
* of oci_connect.
|
||||
* See Connection Handling for general
|
||||
* information on connection management and connection pooling.
|
||||
*
|
||||
* From PHP 5.1.2 (PECL OCI8 1.1) oci_close can
|
||||
* be used to close the connection.
|
||||
@@ -419,7 +396,7 @@ function oci_commit($connection): void
|
||||
* the tnsnames.ora file, or the name of a local
|
||||
* Oracle instance.
|
||||
*
|
||||
* If not specified, PHP uses
|
||||
* If not specified or NULL, PHP uses
|
||||
* environment variables such as TWO_TASK (on Linux)
|
||||
* or LOCAL (on Windows)
|
||||
* and ORACLE_SID to determine the
|
||||
@@ -432,19 +409,19 @@ function oci_commit($connection): void
|
||||
* [//]host_name[:port][/service_name]. From Oracle
|
||||
* 11g, the syntax is:
|
||||
* [//]host_name[:port][/service_name][:server_type][/instance_name].
|
||||
* Service names can be found by running the Oracle
|
||||
* utility lsnrctl status on the database server
|
||||
* Further options were introduced with Oracle 19c, including timeout and keep-alive
|
||||
* settings. Refer to Oracle documentation. Service names can be found by running
|
||||
* the Oracle utility lsnrctl status on the database server
|
||||
* machine.
|
||||
*
|
||||
*
|
||||
* The tnsnames.ora file can be in the Oracle Net
|
||||
* search path, which
|
||||
* includes $ORACLE_HOME/network/admin
|
||||
* and /etc. Alternatively
|
||||
* set TNS_ADMIN so
|
||||
* that $TNS_ADMIN/tnsnames.ora is read. Make sure
|
||||
* the web daemon has read access to the file.
|
||||
* @param string $character_set Determines
|
||||
* The tnsnames.ora file can be in the Oracle Net search path,
|
||||
* which
|
||||
* includes /your/path/to/instantclient/network/admin, $ORACLE_HOME/network/admin
|
||||
* and /etc. Alternatively set TNS_ADMIN
|
||||
* so that $TNS_ADMIN/tnsnames.ora is read. Make sure the web
|
||||
* daemon has read access to the file.
|
||||
* @param string $encoding Determines
|
||||
* the character set used by the Oracle Client libraries. The character
|
||||
* set does not need to match the character set used by the database. If
|
||||
* it doesn't match, Oracle will do its best to convert data to and from
|
||||
@@ -489,13 +466,13 @@ function oci_commit($connection): void
|
||||
* @throws Oci8Exception
|
||||
*
|
||||
*/
|
||||
function oci_connect(string $username, string $password, string $connection_string = null, string $character_set = null, int $session_mode = null)
|
||||
function oci_connect(string $username, string $password, string $connection_string = null, string $encoding = "", int $session_mode = OCI_DEFAULT)
|
||||
{
|
||||
error_clear_last();
|
||||
if ($session_mode !== null) {
|
||||
$result = \oci_connect($username, $password, $connection_string, $character_set, $session_mode);
|
||||
} elseif ($character_set !== null) {
|
||||
$result = \oci_connect($username, $password, $connection_string, $character_set);
|
||||
if ($session_mode !== OCI_DEFAULT) {
|
||||
$result = \oci_connect($username, $password, $connection_string, $encoding, $session_mode);
|
||||
} elseif ($encoding !== "") {
|
||||
$result = \oci_connect($username, $password, $connection_string, $encoding);
|
||||
} elseif ($connection_string !== null) {
|
||||
$result = \oci_connect($username, $password, $connection_string);
|
||||
} else {
|
||||
@@ -518,12 +495,12 @@ function oci_connect(string $username, string $password, string $connection_stri
|
||||
* identifier created by oci_parse and executed
|
||||
* by oci_execute, or a REF
|
||||
* CURSOR statement identifier.
|
||||
* @param string $column_name The column name used in the query.
|
||||
* @param string $column The column name used in the query.
|
||||
*
|
||||
* Use uppercase for Oracle's default, non-case sensitive column
|
||||
* names. Use the exact column name case for case-sensitive
|
||||
* column names.
|
||||
* @param mixed $variable The PHP variable that will contain the returned column value.
|
||||
* @param mixed $var The PHP variable that will contain the returned column value.
|
||||
* @param int $type The data type to be returned. Generally not needed. Note that
|
||||
* Oracle-style data conversions are not performed. For example,
|
||||
* SQLT_INT will be ignored and the returned
|
||||
@@ -534,10 +511,10 @@ function oci_connect(string $username, string $password, string $connection_stri
|
||||
* @throws Oci8Exception
|
||||
*
|
||||
*/
|
||||
function oci_define_by_name($statement, string $column_name, &$variable, int $type = SQLT_CHR): void
|
||||
function oci_define_by_name($statement, string $column, &$var, int $type = 0): void
|
||||
{
|
||||
error_clear_last();
|
||||
$result = \oci_define_by_name($statement, $column_name, $variable, $type);
|
||||
$result = \oci_define_by_name($statement, $column, $var, $type);
|
||||
if ($result === false) {
|
||||
throw Oci8Exception::createFromPhpError();
|
||||
}
|
||||
@@ -632,121 +609,18 @@ function oci_execute($statement, int $mode = OCI_COMMIT_ON_SUCCESS): void
|
||||
|
||||
|
||||
/**
|
||||
* Fetches multiple rows from a query into a two-dimensional array.
|
||||
* By default, all rows are returned.
|
||||
*
|
||||
* This function can be called only once for each query executed
|
||||
* with oci_execute.
|
||||
*
|
||||
* @param resource $statement A valid OCI8 statement
|
||||
* identifier created by oci_parse and executed
|
||||
* by oci_execute, or a REF
|
||||
* CURSOR statement identifier.
|
||||
* @param array|null $output The variable to contain the returned rows.
|
||||
*
|
||||
* LOB columns are returned as strings, where Oracle supports
|
||||
* conversion.
|
||||
*
|
||||
* See oci_fetch_array for more information
|
||||
* on how data and types are fetched.
|
||||
* @param int $skip The number of initial rows to discard when fetching the
|
||||
* result. The default value is 0, so the first row onwards is
|
||||
* returned.
|
||||
* @param int $maxrows The number of rows to return. The default is -1 meaning return
|
||||
* all the rows from skip + 1 onwards.
|
||||
* @param int $flags Parameter flags indicates the array
|
||||
* structure and whether associative arrays should be used.
|
||||
*
|
||||
* oci_fetch_all Array Structure Modes
|
||||
*
|
||||
*
|
||||
*
|
||||
* Constant
|
||||
* Description
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
* OCI_FETCHSTATEMENT_BY_ROW
|
||||
* The outer array will contain one sub-array per query
|
||||
* row.
|
||||
*
|
||||
*
|
||||
* OCI_FETCHSTATEMENT_BY_COLUMN
|
||||
* The outer array will contain one sub-array per query
|
||||
* column. This is the default.
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
* Arrays can be indexed either by column heading or numerically.
|
||||
* Only one index mode will be returned.
|
||||
*
|
||||
* oci_fetch_all Array Index Modes
|
||||
*
|
||||
*
|
||||
*
|
||||
* Constant
|
||||
* Description
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
* OCI_NUM
|
||||
* Numeric indexes are used for each column's array.
|
||||
*
|
||||
*
|
||||
* OCI_ASSOC
|
||||
* Associative indexes are used for each column's
|
||||
* array. This is the default.
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
* Use the addition operator "+" to choose a combination
|
||||
* of array structure and index modes.
|
||||
*
|
||||
* Oracle's default, non-case sensitive column names will have
|
||||
* uppercase array keys. Case-sensitive column names will have
|
||||
* array keys using the exact column case.
|
||||
* Use var_dump
|
||||
* on output to verify the appropriate case
|
||||
* to use for each query.
|
||||
*
|
||||
* Queries that have more than one column with the same name
|
||||
* should use column aliases. Otherwise only one of the columns
|
||||
* will appear in an associative array.
|
||||
* @return int Returns the number of rows in output, which
|
||||
* may be 0 or more.
|
||||
* @throws Oci8Exception
|
||||
*
|
||||
*/
|
||||
function oci_fetch_all($statement, ?array &$output, int $skip = 0, int $maxrows = -1, int $flags = OCI_FETCHSTATEMENT_BY_COLUMN + OCI_ASSOC): int
|
||||
{
|
||||
error_clear_last();
|
||||
$result = \oci_fetch_all($statement, $output, $skip, $maxrows, $flags);
|
||||
if ($result === false) {
|
||||
throw Oci8Exception::createFromPhpError();
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Returns the name of the field.
|
||||
* Returns the name of the column.
|
||||
*
|
||||
* @param resource $statement A valid OCI statement identifier.
|
||||
* @param mixed $field Can be the field's index (1-based) or name.
|
||||
* @return string Returns the name as a strings.
|
||||
* @param mixed $column Can be the field's index (1-based) or name.
|
||||
* @return string Returns the name as a string
|
||||
* @throws Oci8Exception
|
||||
*
|
||||
*/
|
||||
function oci_field_name($statement, $field): string
|
||||
function oci_field_name($statement, $column): string
|
||||
{
|
||||
error_clear_last();
|
||||
$result = \oci_field_name($statement, $field);
|
||||
$result = \oci_field_name($statement, $column);
|
||||
if ($result === false) {
|
||||
throw Oci8Exception::createFromPhpError();
|
||||
}
|
||||
@@ -755,22 +629,22 @@ function oci_field_name($statement, $field): string
|
||||
|
||||
|
||||
/**
|
||||
* Returns precision of the field.
|
||||
* Returns precision of the column.
|
||||
*
|
||||
* For FLOAT columns, precision is nonzero and scale is -127.
|
||||
* If precision is 0, then column is NUMBER. Else it's
|
||||
* NUMBER(precision, scale).
|
||||
*
|
||||
* @param resource $statement A valid OCI statement identifier.
|
||||
* @param mixed $field Can be the field's index (1-based) or name.
|
||||
* @return int Returns the precision as an integers.
|
||||
* @param mixed $column Can be the field's index (1-based) or name.
|
||||
* @return int Returns the precision as an integer
|
||||
* @throws Oci8Exception
|
||||
*
|
||||
*/
|
||||
function oci_field_precision($statement, $field): int
|
||||
function oci_field_precision($statement, $column): int
|
||||
{
|
||||
error_clear_last();
|
||||
$result = \oci_field_precision($statement, $field);
|
||||
$result = \oci_field_precision($statement, $column);
|
||||
if ($result === false) {
|
||||
throw Oci8Exception::createFromPhpError();
|
||||
}
|
||||
@@ -779,22 +653,22 @@ function oci_field_precision($statement, $field): int
|
||||
|
||||
|
||||
/**
|
||||
* Returns the scale of the column with field index.
|
||||
* Returns the scale of the column with column index.
|
||||
*
|
||||
* For FLOAT columns, precision is nonzero and scale is -127.
|
||||
* If precision is 0, then column is NUMBER. Else it's
|
||||
* NUMBER(precision, scale).
|
||||
*
|
||||
* @param resource $statement A valid OCI statement identifier.
|
||||
* @param mixed $field Can be the field's index (1-based) or name.
|
||||
* @return int Returns the scale as an integers.
|
||||
* @param mixed $column Can be the field's index (1-based) or name.
|
||||
* @return int Returns the scale as an integer
|
||||
* @throws Oci8Exception
|
||||
*
|
||||
*/
|
||||
function oci_field_scale($statement, $field): int
|
||||
function oci_field_scale($statement, $column): int
|
||||
{
|
||||
error_clear_last();
|
||||
$result = \oci_field_scale($statement, $field);
|
||||
$result = \oci_field_scale($statement, $column);
|
||||
if ($result === false) {
|
||||
throw Oci8Exception::createFromPhpError();
|
||||
}
|
||||
@@ -803,18 +677,18 @@ function oci_field_scale($statement, $field): int
|
||||
|
||||
|
||||
/**
|
||||
* Returns the size of a field.
|
||||
* Returns the size of a column.
|
||||
*
|
||||
* @param resource $statement A valid OCI statement identifier.
|
||||
* @param mixed $field Can be the field's index (1-based) or name.
|
||||
* @return int Returns the size of a field in bytess.
|
||||
* @param mixed $column Can be the field's index (1-based) or name.
|
||||
* @return int Returns the size of a column in bytes
|
||||
* @throws Oci8Exception
|
||||
*
|
||||
*/
|
||||
function oci_field_size($statement, $field): int
|
||||
function oci_field_size($statement, $column): int
|
||||
{
|
||||
error_clear_last();
|
||||
$result = \oci_field_size($statement, $field);
|
||||
$result = \oci_field_size($statement, $column);
|
||||
if ($result === false) {
|
||||
throw Oci8Exception::createFromPhpError();
|
||||
}
|
||||
@@ -823,20 +697,20 @@ function oci_field_size($statement, $field): int
|
||||
|
||||
|
||||
/**
|
||||
* Returns Oracle's raw "SQLT" data type of the field.
|
||||
* Returns Oracle's raw "SQLT" data type of the column.
|
||||
*
|
||||
* If you want a field's type name, then use oci_field_type instead.
|
||||
*
|
||||
* @param resource $statement A valid OCI statement identifier.
|
||||
* @param mixed $field Can be the field's index (1-based) or name.
|
||||
* @return int Returns Oracle's raw data type as a numbers.
|
||||
* @param mixed $column Can be the field's index (1-based) or name.
|
||||
* @return int Returns Oracle's raw data type as a number
|
||||
* @throws Oci8Exception
|
||||
*
|
||||
*/
|
||||
function oci_field_type_raw($statement, $field): int
|
||||
function oci_field_type_raw($statement, $column): int
|
||||
{
|
||||
error_clear_last();
|
||||
$result = \oci_field_type_raw($statement, $field);
|
||||
$result = \oci_field_type_raw($statement, $column);
|
||||
if ($result === false) {
|
||||
throw Oci8Exception::createFromPhpError();
|
||||
}
|
||||
@@ -848,15 +722,15 @@ function oci_field_type_raw($statement, $field): int
|
||||
* Returns a field's data type name.
|
||||
*
|
||||
* @param resource $statement A valid OCI statement identifier.
|
||||
* @param mixed $field Can be the field's index (1-based) or name.
|
||||
* @return mixed Returns the field data type as a strings.
|
||||
* @param mixed $column Can be the field's index (1-based) or name.
|
||||
* @return mixed Returns the field data type as a string or an integer
|
||||
* @throws Oci8Exception
|
||||
*
|
||||
*/
|
||||
function oci_field_type($statement, $field)
|
||||
function oci_field_type($statement, $column)
|
||||
{
|
||||
error_clear_last();
|
||||
$result = \oci_field_type($statement, $field);
|
||||
$result = \oci_field_type($statement, $column);
|
||||
if ($result === false) {
|
||||
throw Oci8Exception::createFromPhpError();
|
||||
}
|
||||
@@ -867,14 +741,14 @@ function oci_field_type($statement, $field)
|
||||
/**
|
||||
* Frees a descriptor allocated by oci_new_descriptor.
|
||||
*
|
||||
* @param resource $descriptor
|
||||
* @param \OCILob $lob Descriptor allocated by oci_new_descriptor.
|
||||
* @throws Oci8Exception
|
||||
*
|
||||
*/
|
||||
function oci_free_descriptor($descriptor): void
|
||||
function oci_free_descriptor(\OCILob $lob): void
|
||||
{
|
||||
error_clear_last();
|
||||
$result = \oci_free_descriptor($descriptor);
|
||||
$result = \oci_free_descriptor($lob);
|
||||
if ($result === false) {
|
||||
throw Oci8Exception::createFromPhpError();
|
||||
}
|
||||
@@ -905,17 +779,21 @@ function oci_free_statement($statement): void
|
||||
*
|
||||
* @param resource $connection An Oracle connection identifier, returned by
|
||||
* oci_connect or oci_pconnect.
|
||||
* @param string $tdo Should be a valid named type (uppercase).
|
||||
* @param string $type_name Should be a valid named type (uppercase).
|
||||
* @param string $schema Should point to the scheme, where the named type was created. The name
|
||||
* of the current user is the default value.
|
||||
* of the current user is used when NULL is passed.
|
||||
* @return \OCI-Collection Returns a new OCICollection object.
|
||||
* @throws Oci8Exception
|
||||
*
|
||||
*/
|
||||
function oci_new_collection($connection, string $tdo, string $schema = null)
|
||||
function oci_new_collection($connection, string $type_name, string $schema = null)
|
||||
{
|
||||
error_clear_last();
|
||||
$result = \oci_new_collection($connection, $tdo, $schema);
|
||||
if ($schema !== null) {
|
||||
$result = \oci_new_collection($connection, $type_name, $schema);
|
||||
} else {
|
||||
$result = \oci_new_collection($connection, $type_name);
|
||||
}
|
||||
if ($result === false) {
|
||||
throw Oci8Exception::createFromPhpError();
|
||||
}
|
||||
@@ -941,7 +819,7 @@ function oci_new_collection($connection, string $tdo, string $schema = null)
|
||||
* the tnsnames.ora file, or the name of a local
|
||||
* Oracle instance.
|
||||
*
|
||||
* If not specified, PHP uses
|
||||
* If not specified or NULL, PHP uses
|
||||
* environment variables such as TWO_TASK (on Linux)
|
||||
* or LOCAL (on Windows)
|
||||
* and ORACLE_SID to determine the
|
||||
@@ -954,19 +832,19 @@ function oci_new_collection($connection, string $tdo, string $schema = null)
|
||||
* [//]host_name[:port][/service_name]. From Oracle
|
||||
* 11g, the syntax is:
|
||||
* [//]host_name[:port][/service_name][:server_type][/instance_name].
|
||||
* Service names can be found by running the Oracle
|
||||
* utility lsnrctl status on the database server
|
||||
* Further options were introduced with Oracle 19c, including timeout and keep-alive
|
||||
* settings. Refer to Oracle documentation. Service names can be found by running
|
||||
* the Oracle utility lsnrctl status on the database server
|
||||
* machine.
|
||||
*
|
||||
*
|
||||
* The tnsnames.ora file can be in the Oracle Net
|
||||
* search path, which
|
||||
* includes $ORACLE_HOME/network/admin
|
||||
* and /etc. Alternatively
|
||||
* set TNS_ADMIN so
|
||||
* that $TNS_ADMIN/tnsnames.ora is read. Make sure
|
||||
* the web daemon has read access to the file.
|
||||
* @param string $character_set Determines
|
||||
* The tnsnames.ora file can be in the Oracle Net search path,
|
||||
* which
|
||||
* includes /your/path/to/instantclient/network/admin, $ORACLE_HOME/network/admin
|
||||
* and /etc. Alternatively set TNS_ADMIN
|
||||
* so that $TNS_ADMIN/tnsnames.ora is read. Make sure the web
|
||||
* daemon has read access to the file.
|
||||
* @param string $encoding Determines
|
||||
* the character set used by the Oracle Client libraries. The character
|
||||
* set does not need to match the character set used by the database. If
|
||||
* it doesn't match, Oracle will do its best to convert data to and from
|
||||
@@ -1011,13 +889,13 @@ function oci_new_collection($connection, string $tdo, string $schema = null)
|
||||
* @throws Oci8Exception
|
||||
*
|
||||
*/
|
||||
function oci_new_connect(string $username, string $password, string $connection_string = null, string $character_set = null, int $session_mode = null)
|
||||
function oci_new_connect(string $username, string $password, string $connection_string = null, string $encoding = "", int $session_mode = OCI_DEFAULT)
|
||||
{
|
||||
error_clear_last();
|
||||
if ($session_mode !== null) {
|
||||
$result = \oci_new_connect($username, $password, $connection_string, $character_set, $session_mode);
|
||||
} elseif ($character_set !== null) {
|
||||
$result = \oci_new_connect($username, $password, $connection_string, $character_set);
|
||||
if ($session_mode !== OCI_DEFAULT) {
|
||||
$result = \oci_new_connect($username, $password, $connection_string, $encoding, $session_mode);
|
||||
} elseif ($encoding !== "") {
|
||||
$result = \oci_new_connect($username, $password, $connection_string, $encoding);
|
||||
} elseif ($connection_string !== null) {
|
||||
$result = \oci_new_connect($username, $password, $connection_string);
|
||||
} else {
|
||||
@@ -1058,7 +936,7 @@ function oci_new_cursor($connection)
|
||||
* @param int $type Valid values for type are:
|
||||
* OCI_DTYPE_FILE, OCI_DTYPE_LOB and
|
||||
* OCI_DTYPE_ROWID.
|
||||
* @return \OCI-Lob Returns a new LOB or FILE descriptor on success, FALSE on error.
|
||||
* @return \OCI-Lob|false Returns a new LOB or FILE descriptor on success.
|
||||
* @throws Oci8Exception
|
||||
*
|
||||
*/
|
||||
@@ -1066,26 +944,7 @@ function oci_new_descriptor($connection, int $type = OCI_DTYPE_LOB)
|
||||
{
|
||||
error_clear_last();
|
||||
$result = \oci_new_descriptor($connection, $type);
|
||||
if ($result === false) {
|
||||
throw Oci8Exception::createFromPhpError();
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Gets the number of columns in the given statement.
|
||||
*
|
||||
* @param resource $statement A valid OCI statement identifier.
|
||||
* @return int Returns the number of columns as an integers.
|
||||
* @throws Oci8Exception
|
||||
*
|
||||
*/
|
||||
function oci_num_fields($statement): int
|
||||
{
|
||||
error_clear_last();
|
||||
$result = \oci_num_fields($statement);
|
||||
if ($result === false) {
|
||||
if ($result === null) {
|
||||
throw Oci8Exception::createFromPhpError();
|
||||
}
|
||||
return $result;
|
||||
@@ -1096,7 +955,7 @@ function oci_num_fields($statement): int
|
||||
* Gets the number of rows affected during statement execution.
|
||||
*
|
||||
* @param resource $statement A valid OCI statement identifier.
|
||||
* @return int Returns the number of rows affected as an integers.
|
||||
* @return int Returns the number of rows affected as an integer
|
||||
* @throws Oci8Exception
|
||||
*
|
||||
*/
|
||||
@@ -1112,7 +971,7 @@ function oci_num_rows($statement): int
|
||||
|
||||
|
||||
/**
|
||||
* Prepares sql_text using
|
||||
* Prepares sql using
|
||||
* connection and returns the statement identifier,
|
||||
* which can be used with oci_bind_by_name,
|
||||
* oci_execute and other functions.
|
||||
@@ -1123,7 +982,7 @@ function oci_num_rows($statement): int
|
||||
*
|
||||
* @param resource $connection An Oracle connection identifier, returned by
|
||||
* oci_connect, oci_pconnect, or oci_new_connect.
|
||||
* @param string $sql_text The SQL or PL/SQL statement.
|
||||
* @param string $sql The SQL or PL/SQL statement.
|
||||
*
|
||||
* SQL statements should not end with a
|
||||
* semi-colon (";"). PL/SQL
|
||||
@@ -1133,10 +992,10 @@ function oci_num_rows($statement): int
|
||||
* @throws Oci8Exception
|
||||
*
|
||||
*/
|
||||
function oci_parse($connection, string $sql_text)
|
||||
function oci_parse($connection, string $sql)
|
||||
{
|
||||
error_clear_last();
|
||||
$result = \oci_parse($connection, $sql_text);
|
||||
$result = \oci_parse($connection, $sql);
|
||||
if ($result === false) {
|
||||
throw Oci8Exception::createFromPhpError();
|
||||
}
|
||||
@@ -1147,11 +1006,12 @@ function oci_parse($connection, string $sql_text)
|
||||
/**
|
||||
* Creates a persistent connection to an Oracle server and logs on.
|
||||
*
|
||||
* Persistent connections are cached and re-used between requests, resulting
|
||||
* in reduced overhead on each page load; a typical PHP application will have
|
||||
* a single persistent connection open against an Oracle server per Apache
|
||||
* child process (or PHP FastCGI/CGI process). See the Persistent Database
|
||||
* Connections section for more information.
|
||||
* Persistent connections are cached and re-used between requests, resulting in
|
||||
* reduced overhead on each page load; a typical PHP application will have a
|
||||
* single persistent connection open against an Oracle server per Apache child
|
||||
* process (or PHP FPM process). See the OCI8
|
||||
* Connection Handling and Connection Pooling section for more
|
||||
* information.
|
||||
*
|
||||
* @param string $username The Oracle user name.
|
||||
* @param string $password The password for username.
|
||||
@@ -1162,7 +1022,7 @@ function oci_parse($connection, string $sql_text)
|
||||
* the tnsnames.ora file, or the name of a local
|
||||
* Oracle instance.
|
||||
*
|
||||
* If not specified, PHP uses
|
||||
* If not specified or NULL, PHP uses
|
||||
* environment variables such as TWO_TASK (on Linux)
|
||||
* or LOCAL (on Windows)
|
||||
* and ORACLE_SID to determine the
|
||||
@@ -1175,19 +1035,19 @@ function oci_parse($connection, string $sql_text)
|
||||
* [//]host_name[:port][/service_name]. From Oracle
|
||||
* 11g, the syntax is:
|
||||
* [//]host_name[:port][/service_name][:server_type][/instance_name].
|
||||
* Service names can be found by running the Oracle
|
||||
* utility lsnrctl status on the database server
|
||||
* Further options were introduced with Oracle 19c, including timeout and keep-alive
|
||||
* settings. Refer to Oracle documentation. Service names can be found by running
|
||||
* the Oracle utility lsnrctl status on the database server
|
||||
* machine.
|
||||
*
|
||||
*
|
||||
* The tnsnames.ora file can be in the Oracle Net
|
||||
* search path, which
|
||||
* includes $ORACLE_HOME/network/admin
|
||||
* and /etc. Alternatively
|
||||
* set TNS_ADMIN so
|
||||
* that $TNS_ADMIN/tnsnames.ora is read. Make sure
|
||||
* the web daemon has read access to the file.
|
||||
* @param string $character_set Determines
|
||||
* The tnsnames.ora file can be in the Oracle Net search path,
|
||||
* which
|
||||
* includes /your/path/to/instantclient/network/admin, $ORACLE_HOME/network/admin
|
||||
* and /etc. Alternatively set TNS_ADMIN
|
||||
* so that $TNS_ADMIN/tnsnames.ora is read. Make sure the web
|
||||
* daemon has read access to the file.
|
||||
* @param string $encoding Determines
|
||||
* the character set used by the Oracle Client libraries. The character
|
||||
* set does not need to match the character set used by the database. If
|
||||
* it doesn't match, Oracle will do its best to convert data to and from
|
||||
@@ -1232,13 +1092,13 @@ function oci_parse($connection, string $sql_text)
|
||||
* @throws Oci8Exception
|
||||
*
|
||||
*/
|
||||
function oci_pconnect(string $username, string $password, string $connection_string = null, string $character_set = null, int $session_mode = null)
|
||||
function oci_pconnect(string $username, string $password, string $connection_string = null, string $encoding = "", int $session_mode = OCI_DEFAULT)
|
||||
{
|
||||
error_clear_last();
|
||||
if ($session_mode !== null) {
|
||||
$result = \oci_pconnect($username, $password, $connection_string, $character_set, $session_mode);
|
||||
} elseif ($character_set !== null) {
|
||||
$result = \oci_pconnect($username, $password, $connection_string, $character_set);
|
||||
if ($session_mode !== OCI_DEFAULT) {
|
||||
$result = \oci_pconnect($username, $password, $connection_string, $encoding, $session_mode);
|
||||
} elseif ($encoding !== "") {
|
||||
$result = \oci_pconnect($username, $password, $connection_string, $encoding);
|
||||
} elseif ($connection_string !== null) {
|
||||
$result = \oci_pconnect($username, $password, $connection_string);
|
||||
} else {
|
||||
@@ -1252,7 +1112,45 @@ function oci_pconnect(string $username, string $password, string $connection_str
|
||||
|
||||
|
||||
/**
|
||||
* Returns the data from field in the current row,
|
||||
* Registers a user-defined callback function to connection.
|
||||
* If connection fails due to instance or network failure,
|
||||
* the registered callback function will be invoked for several times during
|
||||
* failover. See OCI8 Transparent Application Failover
|
||||
* (TAF) Support for information.
|
||||
*
|
||||
* When oci_register_taf_callback is called multiple times,
|
||||
* each registration overwrites the previous one.
|
||||
*
|
||||
* Use oci_unregister_taf_callback to explicitly unregister a
|
||||
* user-defined callback.
|
||||
*
|
||||
* TAF callback registration will NOT be saved across
|
||||
* persistent connections, therefore the callback needs to be re-registered for
|
||||
* a new persistent connection.
|
||||
*
|
||||
* @param resource $connection An Oracle connection identifier.
|
||||
* @param callable $callback A user-defined callback to register for Oracle TAF. It can be a
|
||||
* string of the function name or a Closure (anonymous function).
|
||||
*
|
||||
* The interface of a TAF user-defined callback function is as follows:
|
||||
*
|
||||
* See the parameter description and an example on
|
||||
* OCI8 Transparent Application Failover (TAF) Support page.
|
||||
* @throws Oci8Exception
|
||||
*
|
||||
*/
|
||||
function oci_register_taf_callback($connection, callable $callback): void
|
||||
{
|
||||
error_clear_last();
|
||||
$result = \oci_register_taf_callback($connection, $callback);
|
||||
if ($result === false) {
|
||||
throw Oci8Exception::createFromPhpError();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Returns the data from column in the current row,
|
||||
* fetched by oci_fetch.
|
||||
*
|
||||
* For details on the data type mapping performed by
|
||||
@@ -1260,7 +1158,7 @@ function oci_pconnect(string $username, string $password, string $connection_str
|
||||
* supported by the driver
|
||||
*
|
||||
* @param resource $statement
|
||||
* @param mixed $field Can be either use the column number (1-based) or the column name.
|
||||
* @param mixed $column Can be either use the column number (1-based) or the column name.
|
||||
* The case of the column name must be the case that Oracle meta data
|
||||
* describes the column as, which is uppercase for columns created
|
||||
* case insensitively.
|
||||
@@ -1269,10 +1167,10 @@ function oci_pconnect(string $username, string $password, string $connection_str
|
||||
* @throws Oci8Exception
|
||||
*
|
||||
*/
|
||||
function oci_result($statement, $field): string
|
||||
function oci_result($statement, $column): string
|
||||
{
|
||||
error_clear_last();
|
||||
$result = \oci_result($statement, $field);
|
||||
$result = \oci_result($statement, $column);
|
||||
if ($result === false) {
|
||||
throw Oci8Exception::createFromPhpError();
|
||||
}
|
||||
@@ -1349,14 +1247,14 @@ function oci_server_version($connection): string
|
||||
* @param resource $connection An Oracle connection identifier,
|
||||
* returned by oci_connect, oci_pconnect,
|
||||
* or oci_new_connect.
|
||||
* @param string $action_name User chosen string up to 32 bytes long.
|
||||
* @param string $action User chosen string up to 32 bytes long.
|
||||
* @throws Oci8Exception
|
||||
*
|
||||
*/
|
||||
function oci_set_action($connection, string $action_name): void
|
||||
function oci_set_action($connection, string $action): void
|
||||
{
|
||||
error_clear_last();
|
||||
$result = \oci_set_action($connection, $action_name);
|
||||
$result = \oci_set_action($connection, $action);
|
||||
if ($result === false) {
|
||||
throw Oci8Exception::createFromPhpError();
|
||||
}
|
||||
@@ -1391,14 +1289,14 @@ function oci_set_action($connection, string $action_name): void
|
||||
* @param resource $connection An Oracle connection identifier,
|
||||
* returned by oci_connect, oci_pconnect,
|
||||
* or oci_new_connect.
|
||||
* @param int $time_out The maximum time in milliseconds that any single round-trip between PHP and Oracle Database may take.
|
||||
* @param int $timeout The maximum time in milliseconds that any single round-trip between PHP and Oracle Database may take.
|
||||
* @throws Oci8Exception
|
||||
*
|
||||
*/
|
||||
function oci_set_call_timeout($connection, int $time_out): void
|
||||
function oci_set_call_timeout($connection, int $timeout): void
|
||||
{
|
||||
error_clear_last();
|
||||
$result = \oci_set_call_timeout($connection, $time_out);
|
||||
$result = \oci_set_call_timeout($connection, $timeout);
|
||||
if ($result === false) {
|
||||
throw Oci8Exception::createFromPhpError();
|
||||
}
|
||||
@@ -1426,14 +1324,14 @@ function oci_set_call_timeout($connection, int $time_out): void
|
||||
* @param resource $connection An Oracle connection identifier,
|
||||
* returned by oci_connect, oci_pconnect,
|
||||
* or oci_new_connect.
|
||||
* @param string $client_identifier User chosen string up to 64 bytes long.
|
||||
* @param string $client_id User chosen string up to 64 bytes long.
|
||||
* @throws Oci8Exception
|
||||
*
|
||||
*/
|
||||
function oci_set_client_identifier($connection, string $client_identifier): void
|
||||
function oci_set_client_identifier($connection, string $client_id): void
|
||||
{
|
||||
error_clear_last();
|
||||
$result = \oci_set_client_identifier($connection, $client_identifier);
|
||||
$result = \oci_set_client_identifier($connection, $client_id);
|
||||
if ($result === false) {
|
||||
throw Oci8Exception::createFromPhpError();
|
||||
}
|
||||
@@ -1485,14 +1383,14 @@ function oci_set_client_info($connection, string $client_info): void
|
||||
* @param resource $connection An Oracle connection identifier,
|
||||
* returned by oci_connect, oci_pconnect,
|
||||
* or oci_new_connect.
|
||||
* @param string $dbop User chosen string.
|
||||
* @param string $action User chosen string.
|
||||
* @throws Oci8Exception
|
||||
*
|
||||
*/
|
||||
function oci_set_db_operation($connection, string $dbop): void
|
||||
function oci_set_db_operation($connection, string $action): void
|
||||
{
|
||||
error_clear_last();
|
||||
$result = \oci_set_db_operation($connection, $dbop);
|
||||
$result = \oci_set_db_operation($connection, $action);
|
||||
if ($result === false) {
|
||||
throw Oci8Exception::createFromPhpError();
|
||||
}
|
||||
@@ -1550,14 +1448,50 @@ function oci_set_edition(string $edition): void
|
||||
* @param resource $connection An Oracle connection identifier,
|
||||
* returned by oci_connect, oci_pconnect,
|
||||
* or oci_new_connect.
|
||||
* @param string $module_name User chosen string up to 48 bytes long.
|
||||
* @param string $name User chosen string up to 48 bytes long.
|
||||
* @throws Oci8Exception
|
||||
*
|
||||
*/
|
||||
function oci_set_module_name($connection, string $module_name): void
|
||||
function oci_set_module_name($connection, string $name): void
|
||||
{
|
||||
error_clear_last();
|
||||
$result = \oci_set_module_name($connection, $module_name);
|
||||
$result = \oci_set_module_name($connection, $name);
|
||||
if ($result === false) {
|
||||
throw Oci8Exception::createFromPhpError();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Sets the internal buffer size used to fetch each CLOB or BLOB value when the
|
||||
* implementation gets the internal Oracle LOB locator from the database after
|
||||
* a successful query call to oci_execute and for each
|
||||
* subsequent internal fetch request to the database. Increasing this value
|
||||
* can improve the performance of fetching smaller LOBs by reducing round-trips
|
||||
* between PHP and the database. Memory usage will change.
|
||||
*
|
||||
* The value affects LOBs returned as OCILob instances and also those returned
|
||||
* using OCI_RETURN_LOBS.
|
||||
*
|
||||
* Call oci_set_prefetch_lob before
|
||||
* calling oci_execute. If it is not called, the value
|
||||
* of oci8.prefetch_lob_size
|
||||
* is used.
|
||||
*
|
||||
* The LOB prefetch value should only be set with Oracle Database 12.2 or later.
|
||||
*
|
||||
* @param resource $statement A valid OCI8 statement
|
||||
* identifier created by oci_parse and executed
|
||||
* by oci_execute, or a REF
|
||||
* CURSOR statement identifier.
|
||||
* @param int $prefetch_lob_size The number of bytes of each LOB to be prefetched, >= 0
|
||||
* @throws Oci8Exception
|
||||
*
|
||||
*/
|
||||
function oci_set_prefetch_lob($statement, int $prefetch_lob_size): void
|
||||
{
|
||||
error_clear_last();
|
||||
$result = \oci_set_prefetch_lob($statement, $prefetch_lob_size);
|
||||
if ($result === false) {
|
||||
throw Oci8Exception::createFromPhpError();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user