summaryrefslogtreecommitdiff
path: root/ext/odbc
diff options
context:
space:
mode:
Diffstat (limited to 'ext/odbc')
-rw-r--r--ext/odbc/odbc.stub.php231
-rw-r--r--ext/odbc/odbc_arginfo.h242
-rw-r--r--ext/odbc/php_odbc.c338
-rw-r--r--ext/odbc/php_odbc.h2
-rw-r--r--ext/odbc/php_odbc_includes.h2
-rw-r--r--ext/odbc/tests/bug78473.phpt8
-rw-r--r--ext/odbc/tests/odbc_data_source_001.phpt4
-rw-r--r--ext/odbc/tests/odbc_free_result_001.phpt34
8 files changed, 538 insertions, 323 deletions
diff --git a/ext/odbc/odbc.stub.php b/ext/odbc/odbc.stub.php
new file mode 100644
index 0000000000..835ea10674
--- /dev/null
+++ b/ext/odbc/odbc.stub.php
@@ -0,0 +1,231 @@
+<?php
+
+function odbc_close_all(): void {}
+
+/** @param resource $result_id */
+function odbc_binmode($result_id, int $mode): bool {}
+
+/** @param resource $result_id */
+function odbc_longreadlen($result_id, int $length): bool {}
+
+/**
+ * @param resource $result_id
+ * @return resource|false
+ */
+function odbc_prepare($connection_id, string $query) {}
+
+/** @param resource $result_id */
+function odbc_execute($result_id, array $parameters_array = UNKNOWN): bool {}
+
+/**
+ * @param resource $result_id
+ * @return string|false
+ */
+function odbc_cursor($result_id) {}
+
+#ifdef HAVE_SQLDATASOURCES
+/**
+ * @param resource $connection_id
+ * @return array|false
+ */
+function odbc_data_source($connection_id, int $fetch_type) {}
+#endif
+
+/**
+ * @param resource $connection_id
+ * @return resource|false
+ */
+function odbc_exec($connection_id, string $query, int $flags = UNKNOWN) {}
+
+/**
+ * @param resource $connection_id
+ * @return resource|false
+ */
+function odbc_do($connection_id, string $query, int $flags = UNKNOWN) {}
+
+#ifdef PHP_ODBC_HAVE_FETCH_HASH
+/**
+ * @param resource $result
+ * @return stdClass|false
+ */
+function odbc_fetch_object($result, int $rownumber = -1) {}
+
+/**
+ * @param resource $result
+ * @return array|false
+ */
+function odbc_fetch_array($result, int $rownumber = -1) {}
+#endif
+
+/**
+ * @param resource $result_id
+ * @return int|false
+ */
+function odbc_fetch_into($result_id, &$result_array, int $rownumber = 0) {}
+
+/** @param resource $result_id */
+function odbc_fetch_row($result_id, int $row_number = UNKNOWN): bool {}
+
+/**
+ * @param resource $result_id
+ * @param string|int $field
+ * @return string|bool|null
+ */
+function odbc_result($result_id, $field) {}
+
+/**
+ * @param resource $result_id
+ * @return int|false
+ */
+function odbc_result_all($result_id, string $format = '') {}
+
+/** @param resource $result_id */
+function odbc_free_result($result_id): bool {}
+
+/** @return resource|false */
+function odbc_connect(string $dsn, string $user, string $password, int $cursor_option = SQL_CUR_USE_DRIVER) {}
+
+/** @return resource|false */
+function odbc_pconnect(string $dsn, string $user, string $password, int $cursor_option = SQL_CUR_USE_DRIVER) {}
+
+/** @param resource $connection_id */
+function odbc_close($connection_id): void {}
+
+/** @param resource $result_id */
+function odbc_num_rows($result_id): int {}
+
+#if !defined(HAVE_SOLID) && !defined(HAVE_SOLID_30)
+/** @param resource $result_id */
+function odbc_next_result($result_id): bool {}
+#endif
+
+/** @param resource $result_id */
+function odbc_num_fields($result_id): int {}
+
+/**
+ * @param resource $result_id
+ * @return string|false
+ */
+function odbc_field_name($result_id, int $field_number) {}
+
+/**
+ * @param resource $result_id
+ * @return string|false
+ */
+function odbc_field_type($result_id, int $field_number) {}
+
+/**
+ * @param resource $result_id
+ * @return int|false
+ */
+function odbc_field_len($result_id, int $field_number) {}
+
+/**
+ * @param resource $result_id
+ * @return int|false
+ */
+function odbc_field_precision($result_id, int $field_number) {}
+
+/**
+ * @param resource $result_id
+ * @return int|false
+ */
+function odbc_field_scale($result_id, int $field_number) {}
+
+/**
+ * @param resource $result_id
+ * @return int|false
+ */
+function odbc_field_num($result_id, string $field_name) {}
+
+/**
+ * @param resource $connection_id
+ * @return int|bool
+ */
+function odbc_autocommit($connection_id, int $onoff = 0) {}
+
+/** @param resource $connection_id */
+function odbc_commit($connection_id): bool {}
+
+/** @param resource $connection_id */
+function odbc_rollback($connection_id): bool {}
+
+/** @param resource $connection_id */
+function odbc_error($connection_id = UNKNOWN): string {}
+
+/** @param resource $connection_id */
+function odbc_errormsg($connection_id = UNKNOWN): string {}
+
+/** @param resource $conn_id */
+function odbc_setoption($conn_id, int $which, int $option, int $value): bool {}
+
+/**
+ * @param resource $connection_id
+ * @return resource|false
+ */
+function odbc_tables($connection_id, ?string $qualfier = null, string $owner = UNKNOWN, string $name = UNKNOWN, string $table_types = UNKNOWN) {}
+
+/**
+ * @param resource $connection_id
+ * @return resource|false
+ */
+function odbc_columns($connection_id, ?string $qualifier = null, string $owner = UNKNOWN, string $table_name = UNKNOWN, string $column_name = UNKNOWN) {}
+
+/**
+ * @param resource $connection_id
+ * @return resource|false
+ */
+function odbc_gettypeinfo($connection_id, int $data_type = 0) {}
+
+/**
+ * @param resource $connection_id
+ * @return resource|false
+ */
+function odbc_primarykeys($connection_id, ?string $qualifier, string $owner, string $table) {}
+
+#if !defined(HAVE_SOLID) && !defined(HAVE_SOLID_30) && !defined(HAVE_SOLID_35)
+/**
+ * @param resource $connection_id
+ * @return resource|false
+ */
+function odbc_procedurecolumns($connection_id, ?string $qualifier = null, string $owner = UNKNOWN, string $proc = UNKNOWN, string $column = UNKNOWN) {}
+
+/**
+ * @param resource $connection_id
+ * @return resource|false
+ */
+function odbc_procedures($connection_id, ?string $qualifier = null, string $owner = UNKNOWN, string $name = UNKNOWN) {}
+
+/**
+ * @param resource $connection_id
+ * @return resource|false
+ */
+function odbc_foreignkeys($connection_id, ?string $pk_qualifier, string $pk_owner, string $pk_table, string $fk_qualifier, string $fk_owner, string $fk_table) {}
+#endif
+
+/**
+ * @see https://bugs.php.net/bug.php?id=78470
+ * @param resource $connection_id
+ * @return resource|false
+ */
+function odbc_specialcolumns($connection_id, int $type, ?string $qualifier, string $owner, string $table, int $scope) {}
+
+/**
+ * @param resource $connection_id
+ * @return resource|false
+ */
+function odbc_statistics($connection_id, ?string $qualfier, string $owner, string $name, int $unique, int $accuracy) {}
+
+#if !defined(HAVE_DBMAKER) && !defined(HAVE_SOLID) && !defined(HAVE_SOLID_30) &&!defined(HAVE_SOLID_35)
+/**
+ * @param resource $connection_id
+ * @return resource|false
+ */
+function odbc_tableprivileges($connection_id, ?string $qualifier, string $owner, string $name) {}
+
+/**
+ * @param resource $connection_id
+ * @return resource|false
+ */
+function odbc_columnprivileges($connection_id, ?string $catalog, string $schema, string $table, string $column) {}
+#endif
diff --git a/ext/odbc/odbc_arginfo.h b/ext/odbc/odbc_arginfo.h
new file mode 100644
index 0000000000..cac9518e84
--- /dev/null
+++ b/ext/odbc/odbc_arginfo.h
@@ -0,0 +1,242 @@
+/* This is a generated file, edit the .stub.php file instead. */
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_odbc_close_all, 0, 0, IS_VOID, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_odbc_binmode, 0, 2, _IS_BOOL, 0)
+ ZEND_ARG_INFO(0, result_id)
+ ZEND_ARG_TYPE_INFO(0, mode, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_odbc_longreadlen, 0, 2, _IS_BOOL, 0)
+ ZEND_ARG_INFO(0, result_id)
+ ZEND_ARG_TYPE_INFO(0, length, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_odbc_prepare, 0, 0, 2)
+ ZEND_ARG_INFO(0, connection_id)
+ ZEND_ARG_TYPE_INFO(0, query, IS_STRING, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_odbc_execute, 0, 1, _IS_BOOL, 0)
+ ZEND_ARG_INFO(0, result_id)
+ ZEND_ARG_TYPE_INFO(0, parameters_array, IS_ARRAY, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_odbc_cursor, 0, 0, 1)
+ ZEND_ARG_INFO(0, result_id)
+ZEND_END_ARG_INFO()
+
+#if defined(HAVE_SQLDATASOURCES)
+ZEND_BEGIN_ARG_INFO_EX(arginfo_odbc_data_source, 0, 0, 2)
+ ZEND_ARG_INFO(0, connection_id)
+ ZEND_ARG_TYPE_INFO(0, fetch_type, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+#endif
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_odbc_exec, 0, 0, 2)
+ ZEND_ARG_INFO(0, connection_id)
+ ZEND_ARG_TYPE_INFO(0, query, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, flags, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+#define arginfo_odbc_do arginfo_odbc_exec
+
+#if defined(PHP_ODBC_HAVE_FETCH_HASH)
+ZEND_BEGIN_ARG_INFO_EX(arginfo_odbc_fetch_object, 0, 0, 1)
+ ZEND_ARG_INFO(0, result)
+ ZEND_ARG_TYPE_INFO(0, rownumber, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+#endif
+
+#if defined(PHP_ODBC_HAVE_FETCH_HASH)
+#define arginfo_odbc_fetch_array arginfo_odbc_fetch_object
+#endif
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_odbc_fetch_into, 0, 0, 2)
+ ZEND_ARG_INFO(0, result_id)
+ ZEND_ARG_INFO(1, result_array)
+ ZEND_ARG_TYPE_INFO(0, rownumber, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_odbc_fetch_row, 0, 1, _IS_BOOL, 0)
+ ZEND_ARG_INFO(0, result_id)
+ ZEND_ARG_TYPE_INFO(0, row_number, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_odbc_result, 0, 0, 2)
+ ZEND_ARG_INFO(0, result_id)
+ ZEND_ARG_INFO(0, field)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_odbc_result_all, 0, 0, 1)
+ ZEND_ARG_INFO(0, result_id)
+ ZEND_ARG_TYPE_INFO(0, format, IS_STRING, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_odbc_free_result, 0, 1, _IS_BOOL, 0)
+ ZEND_ARG_INFO(0, result_id)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_odbc_connect, 0, 0, 3)
+ ZEND_ARG_TYPE_INFO(0, dsn, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, user, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, password, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, cursor_option, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+#define arginfo_odbc_pconnect arginfo_odbc_connect
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_odbc_close, 0, 1, IS_VOID, 0)
+ ZEND_ARG_INFO(0, connection_id)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_odbc_num_rows, 0, 1, IS_LONG, 0)
+ ZEND_ARG_INFO(0, result_id)
+ZEND_END_ARG_INFO()
+
+#if !defined(HAVE_SOLID) && !defined(HAVE_SOLID_30)
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_odbc_next_result, 0, 1, _IS_BOOL, 0)
+ ZEND_ARG_INFO(0, result_id)
+ZEND_END_ARG_INFO()
+#endif
+
+#define arginfo_odbc_num_fields arginfo_odbc_num_rows
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_odbc_field_name, 0, 0, 2)
+ ZEND_ARG_INFO(0, result_id)
+ ZEND_ARG_TYPE_INFO(0, field_number, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+#define arginfo_odbc_field_type arginfo_odbc_field_name
+
+#define arginfo_odbc_field_len arginfo_odbc_field_name
+
+#define arginfo_odbc_field_precision arginfo_odbc_field_name
+
+#define arginfo_odbc_field_scale arginfo_odbc_field_name
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_odbc_field_num, 0, 0, 2)
+ ZEND_ARG_INFO(0, result_id)
+ ZEND_ARG_TYPE_INFO(0, field_name, IS_STRING, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_odbc_autocommit, 0, 0, 1)
+ ZEND_ARG_INFO(0, connection_id)
+ ZEND_ARG_TYPE_INFO(0, onoff, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_odbc_commit, 0, 1, _IS_BOOL, 0)
+ ZEND_ARG_INFO(0, connection_id)
+ZEND_END_ARG_INFO()
+
+#define arginfo_odbc_rollback arginfo_odbc_commit
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_odbc_error, 0, 0, IS_STRING, 0)
+ ZEND_ARG_INFO(0, connection_id)
+ZEND_END_ARG_INFO()
+
+#define arginfo_odbc_errormsg arginfo_odbc_error
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_odbc_setoption, 0, 4, _IS_BOOL, 0)
+ ZEND_ARG_INFO(0, conn_id)
+ ZEND_ARG_TYPE_INFO(0, which, IS_LONG, 0)
+ ZEND_ARG_TYPE_INFO(0, option, IS_LONG, 0)
+ ZEND_ARG_TYPE_INFO(0, value, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_odbc_tables, 0, 0, 1)
+ ZEND_ARG_INFO(0, connection_id)
+ ZEND_ARG_TYPE_INFO(0, qualfier, IS_STRING, 1)
+ ZEND_ARG_TYPE_INFO(0, owner, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, name, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, table_types, IS_STRING, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_odbc_columns, 0, 0, 1)
+ ZEND_ARG_INFO(0, connection_id)
+ ZEND_ARG_TYPE_INFO(0, qualifier, IS_STRING, 1)
+ ZEND_ARG_TYPE_INFO(0, owner, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, table_name, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, column_name, IS_STRING, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_odbc_gettypeinfo, 0, 0, 1)
+ ZEND_ARG_INFO(0, connection_id)
+ ZEND_ARG_TYPE_INFO(0, data_type, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_odbc_primarykeys, 0, 0, 4)
+ ZEND_ARG_INFO(0, connection_id)
+ ZEND_ARG_TYPE_INFO(0, qualifier, IS_STRING, 1)
+ ZEND_ARG_TYPE_INFO(0, owner, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, table, IS_STRING, 0)
+ZEND_END_ARG_INFO()
+
+#if !defined(HAVE_SOLID) && !defined(HAVE_SOLID_30) && !defined(HAVE_SOLID_35)
+ZEND_BEGIN_ARG_INFO_EX(arginfo_odbc_procedurecolumns, 0, 0, 1)
+ ZEND_ARG_INFO(0, connection_id)
+ ZEND_ARG_TYPE_INFO(0, qualifier, IS_STRING, 1)
+ ZEND_ARG_TYPE_INFO(0, owner, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, proc, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, column, IS_STRING, 0)
+ZEND_END_ARG_INFO()
+#endif
+
+#if !defined(HAVE_SOLID) && !defined(HAVE_SOLID_30) && !defined(HAVE_SOLID_35)
+ZEND_BEGIN_ARG_INFO_EX(arginfo_odbc_procedures, 0, 0, 1)
+ ZEND_ARG_INFO(0, connection_id)
+ ZEND_ARG_TYPE_INFO(0, qualifier, IS_STRING, 1)
+ ZEND_ARG_TYPE_INFO(0, owner, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, name, IS_STRING, 0)
+ZEND_END_ARG_INFO()
+#endif
+
+#if !defined(HAVE_SOLID) && !defined(HAVE_SOLID_30) && !defined(HAVE_SOLID_35)
+ZEND_BEGIN_ARG_INFO_EX(arginfo_odbc_foreignkeys, 0, 0, 7)
+ ZEND_ARG_INFO(0, connection_id)
+ ZEND_ARG_TYPE_INFO(0, pk_qualifier, IS_STRING, 1)
+ ZEND_ARG_TYPE_INFO(0, pk_owner, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, pk_table, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, fk_qualifier, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, fk_owner, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, fk_table, IS_STRING, 0)
+ZEND_END_ARG_INFO()
+#endif
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_odbc_specialcolumns, 0, 0, 6)
+ ZEND_ARG_INFO(0, connection_id)
+ ZEND_ARG_TYPE_INFO(0, type, IS_LONG, 0)
+ ZEND_ARG_TYPE_INFO(0, qualifier, IS_STRING, 1)
+ ZEND_ARG_TYPE_INFO(0, owner, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, table, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, scope, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_odbc_statistics, 0, 0, 6)
+ ZEND_ARG_INFO(0, connection_id)
+ ZEND_ARG_TYPE_INFO(0, qualfier, IS_STRING, 1)
+ ZEND_ARG_TYPE_INFO(0, owner, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, name, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, unique, IS_LONG, 0)
+ ZEND_ARG_TYPE_INFO(0, accuracy, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+#if !defined(HAVE_DBMAKER) && !defined(HAVE_SOLID) && !defined(HAVE_SOLID_30) &&!defined(HAVE_SOLID_35)
+ZEND_BEGIN_ARG_INFO_EX(arginfo_odbc_tableprivileges, 0, 0, 4)
+ ZEND_ARG_INFO(0, connection_id)
+ ZEND_ARG_TYPE_INFO(0, qualifier, IS_STRING, 1)
+ ZEND_ARG_TYPE_INFO(0, owner, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, name, IS_STRING, 0)
+ZEND_END_ARG_INFO()
+#endif
+
+#if !defined(HAVE_DBMAKER) && !defined(HAVE_SOLID) && !defined(HAVE_SOLID_30) &&!defined(HAVE_SOLID_35)
+ZEND_BEGIN_ARG_INFO_EX(arginfo_odbc_columnprivileges, 0, 0, 5)
+ ZEND_ARG_INFO(0, connection_id)
+ ZEND_ARG_TYPE_INFO(0, catalog, IS_STRING, 1)
+ ZEND_ARG_TYPE_INFO(0, schema, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, table, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, column, IS_STRING, 0)
+ZEND_END_ARG_INFO()
+#endif
diff --git a/ext/odbc/php_odbc.c b/ext/odbc/php_odbc.c
index 19fce8d0fd..071b36c817 100644
--- a/ext/odbc/php_odbc.c
+++ b/ext/odbc/php_odbc.c
@@ -1,7 +1,5 @@
/*
+----------------------------------------------------------------------+
- | PHP Version 7 |
- +----------------------------------------------------------------------+
| Copyright (c) The PHP Group |
+----------------------------------------------------------------------+
| This source file is subject to version 3.01 of the PHP license, |
@@ -34,6 +32,7 @@
#include "php_odbc.h"
#include "php_odbc_includes.h"
#include "php_globals.h"
+#include "odbc_arginfo.h"
#if HAVE_UODBC
@@ -64,261 +63,6 @@ static int le_result, le_conn, le_pconn;
#define SAFE_SQL_NTS(n) ((SQLSMALLINT) ((n)?(SQL_NTS):0))
-/* {{{ arginfo */
-ZEND_BEGIN_ARG_INFO(arginfo_odbc_close_all, 0)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_odbc_binmode, 0, 0, 2)
- ZEND_ARG_INFO(0, result_id)
- ZEND_ARG_INFO(0, mode)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_odbc_longreadlen, 0, 0, 2)
- ZEND_ARG_INFO(0, result_id)
- ZEND_ARG_INFO(0, length)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_odbc_prepare, 0, 0, 2)
- ZEND_ARG_INFO(0, connection_id)
- ZEND_ARG_INFO(0, query)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_odbc_execute, 0, 0, 1)
- ZEND_ARG_INFO(0, result_id)
- ZEND_ARG_INFO(0, parameters_array)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_odbc_cursor, 0, 0, 1)
- ZEND_ARG_INFO(0, result_id)
-ZEND_END_ARG_INFO()
-
-#ifdef HAVE_SQLDATASOURCES
-ZEND_BEGIN_ARG_INFO_EX(arginfo_odbc_data_source, 0, 0, 2)
- ZEND_ARG_INFO(0, connection_id)
- ZEND_ARG_INFO(0, fetch_type)
-ZEND_END_ARG_INFO()
-#endif
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_odbc_exec, 0, 0, 2)
- ZEND_ARG_INFO(0, connection_id)
- ZEND_ARG_INFO(0, query)
- ZEND_ARG_INFO(0, flags)
-ZEND_END_ARG_INFO()
-
-#ifdef PHP_ODBC_HAVE_FETCH_HASH
-ZEND_BEGIN_ARG_INFO_EX(arginfo_odbc_fetch_object, 0, 0, 1)
- ZEND_ARG_INFO(0, result)
- ZEND_ARG_INFO(0, rownumber)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_odbc_fetch_array, 0, 0, 1)
- ZEND_ARG_INFO(0, result)
- ZEND_ARG_INFO(0, rownumber)
-ZEND_END_ARG_INFO()
-#endif
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_odbc_fetch_into, 0, 0, 2)
- ZEND_ARG_INFO(0, result_id)
- ZEND_ARG_INFO(1, result_array)
- ZEND_ARG_INFO(0, rownumber)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_odbc_fetch_row, 0, 0, 1)
- ZEND_ARG_INFO(0, result_id)
- ZEND_ARG_INFO(0, row_number)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_odbc_result, 0, 0, 2)
- ZEND_ARG_INFO(0, result_id)
- ZEND_ARG_INFO(0, field)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_odbc_result_all, 0, 0, 1)
- ZEND_ARG_INFO(0, result_id)
- ZEND_ARG_INFO(0, format)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_odbc_free_result, 0, 0, 1)
- ZEND_ARG_INFO(0, result_id)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_odbc_connect, 0, 0, 3)
- ZEND_ARG_INFO(0, dsn)
- ZEND_ARG_INFO(0, user)
- ZEND_ARG_INFO(0, password)
- ZEND_ARG_INFO(0, cursor_option)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_odbc_pconnect, 0, 0, 3)
- ZEND_ARG_INFO(0, dsn)
- ZEND_ARG_INFO(0, user)
- ZEND_ARG_INFO(0, password)
- ZEND_ARG_INFO(0, cursor_option)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_odbc_close, 0, 0, 1)
- ZEND_ARG_INFO(0, connection_id)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_odbc_num_rows, 0, 0, 1)
- ZEND_ARG_INFO(0, result_id)
-ZEND_END_ARG_INFO()
-
-#if !defined(HAVE_SOLID) && !defined(HAVE_SOLID_30)
-ZEND_BEGIN_ARG_INFO_EX(arginfo_odbc_next_result, 0, 0, 1)
- ZEND_ARG_INFO(0, result_id)
-ZEND_END_ARG_INFO()
-#endif
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_odbc_num_fields, 0, 0, 1)
- ZEND_ARG_INFO(0, result_id)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_odbc_field_name, 0, 0, 2)
- ZEND_ARG_INFO(0, result_id)
- ZEND_ARG_INFO(0, field_number)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_odbc_field_type, 0, 0, 2)
- ZEND_ARG_INFO(0, result_id)
- ZEND_ARG_INFO(0, field_number)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_odbc_field_len, 0, 0, 2)
- ZEND_ARG_INFO(0, result_id)
- ZEND_ARG_INFO(0, field_number)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_odbc_field_scale, 0, 0, 2)
- ZEND_ARG_INFO(0, result_id)
- ZEND_ARG_INFO(0, field_number)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_odbc_field_num, 0, 0, 2)
- ZEND_ARG_INFO(0, result_id)
- ZEND_ARG_INFO(0, field_name)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_odbc_autocommit, 0, 0, 1)
- ZEND_ARG_INFO(0, connection_id)
- ZEND_ARG_INFO(0, onoff)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_odbc_commit, 0, 0, 1)
- ZEND_ARG_INFO(0, connection_id)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_odbc_rollback, 0, 0, 1)
- ZEND_ARG_INFO(0, connection_id)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_odbc_error, 0, 0, 0)
- ZEND_ARG_INFO(0, connection_id)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_odbc_errormsg, 0, 0, 0)
- ZEND_ARG_INFO(0, connection_id)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_odbc_setoption, 0, 0, 4)
- ZEND_ARG_INFO(0, conn_id)
- ZEND_ARG_INFO(0, which)
- ZEND_ARG_INFO(0, option)
- ZEND_ARG_INFO(0, value)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_odbc_tables, 0, 0, 1)
- ZEND_ARG_INFO(0, connection_id)
- ZEND_ARG_INFO(0, qualifier)
- ZEND_ARG_INFO(0, owner)
- ZEND_ARG_INFO(0, name)
- ZEND_ARG_INFO(0, table_types)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_odbc_columns, 0, 0, 1)
- ZEND_ARG_INFO(0, connection_id)
- ZEND_ARG_INFO(0, qualifier)
- ZEND_ARG_INFO(0, owner)
- ZEND_ARG_INFO(0, table_name)
- ZEND_ARG_INFO(0, column_name)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_odbc_gettypeinfo, 0, 0, 1)
- ZEND_ARG_INFO(0, connection_id)
- ZEND_ARG_INFO(0, data_type)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_odbc_primarykeys, 0, 0, 4)
- ZEND_ARG_INFO(0, connection_id)
- ZEND_ARG_INFO(0, qualifier)
- ZEND_ARG_INFO(0, owner)
- ZEND_ARG_INFO(0, table)
-ZEND_END_ARG_INFO()
-
-#if !defined(HAVE_SOLID) && !defined(HAVE_SOLID_30) && !defined(HAVE_SOLID_35)
-ZEND_BEGIN_ARG_INFO_EX(arginfo_odbc_procedurecolumns, 0, 0, 1)
- ZEND_ARG_INFO(0, connection_id)
- ZEND_ARG_INFO(0, qualifier)
- ZEND_ARG_INFO(0, owner)
- ZEND_ARG_INFO(0, proc)
- ZEND_ARG_INFO(0, column)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_odbc_procedures, 0, 0, 1)
- ZEND_ARG_INFO(0, connection_id)
- ZEND_ARG_INFO(0, qualifier)
- ZEND_ARG_INFO(0, owner)
- ZEND_ARG_INFO(0, name)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_odbc_foreignkeys, 0, 0, 7)
- ZEND_ARG_INFO(0, connection_id)
- ZEND_ARG_INFO(0, pk_qualifier)
- ZEND_ARG_INFO(0, pk_owner)
- ZEND_ARG_INFO(0, pk_table)
- ZEND_ARG_INFO(0, fk_qualifier)
- ZEND_ARG_INFO(0, fk_owner)
- ZEND_ARG_INFO(0, fk_table)
-ZEND_END_ARG_INFO()
-#endif
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_odbc_specialcolumns, 0, 0, 7)
- ZEND_ARG_INFO(0, connection_id)
- ZEND_ARG_INFO(0, type)
- ZEND_ARG_INFO(0, qualifier)
- ZEND_ARG_INFO(0, owner)
- ZEND_ARG_INFO(0, table)
- ZEND_ARG_INFO(0, scope)
- ZEND_ARG_INFO(0, nullable)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_odbc_statistics, 0, 0, 6)
- ZEND_ARG_INFO(0, connection_id)
- ZEND_ARG_INFO(0, qualifier)
- ZEND_ARG_INFO(0, owner)
- ZEND_ARG_INFO(0, name)
- ZEND_ARG_INFO(0, unique)
- ZEND_ARG_INFO(0, accuracy)
-ZEND_END_ARG_INFO()
-
-#if !defined(HAVE_DBMAKER) && !defined(HAVE_SOLID) && !defined(HAVE_SOLID_30) &&!defined(HAVE_SOLID_35)
-ZEND_BEGIN_ARG_INFO_EX(arginfo_odbc_tableprivileges, 0, 0, 4)
- ZEND_ARG_INFO(0, connection_id)
- ZEND_ARG_INFO(0, qualifier)
- ZEND_ARG_INFO(0, owner)
- ZEND_ARG_INFO(0, name)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_odbc_columnprivileges, 0, 0, 5)
- ZEND_ARG_INFO(0, connection_id)
- ZEND_ARG_INFO(0, catalog)
- ZEND_ARG_INFO(0, schema)
- ZEND_ARG_INFO(0, table)
- ZEND_ARG_INFO(0, column)
-ZEND_END_ARG_INFO()
-#endif
-/* }}} */
-
/* {{{ odbc_functions[]
*/
static const zend_function_entry odbc_functions[] = {
@@ -375,8 +119,8 @@ static const zend_function_entry odbc_functions[] = {
PHP_FE(odbc_procedures, arginfo_odbc_procedures)
PHP_FE(odbc_procedurecolumns, arginfo_odbc_procedurecolumns)
#endif
- PHP_FALIAS(odbc_do, odbc_exec, arginfo_odbc_exec)
- PHP_FALIAS(odbc_field_precision, odbc_field_len, arginfo_odbc_field_len)
+ PHP_FALIAS(odbc_do, odbc_exec, arginfo_odbc_do)
+ PHP_FALIAS(odbc_field_precision, odbc_field_len, arginfo_odbc_field_precision)
PHP_FE_END
};
/* }}} */
@@ -921,7 +665,7 @@ void php_odbc_fetch_attribs(INTERNAL_FUNCTION_PARAMETERS, int mode)
}
if ((result = (odbc_result *)zend_fetch_resource(Z_RES_P(pv_res), "ODBC result", le_result)) == NULL) {
- RETURN_FALSE;
+ return;
}
if (mode) {
@@ -1059,7 +803,7 @@ void odbc_transact(INTERNAL_FUNCTION_PARAMETERS, int type)
}
if (!(conn = (odbc_connection *)zend_fetch_resource2(Z_RES_P(pv_conn), "ODBC-Link", le_conn, le_pconn))) {
- RETURN_FALSE;
+ return;
}
rc = SQLTransact(conn->henv, conn->hdbc, (SQLUSMALLINT)((type)?SQL_COMMIT:SQL_ROLLBACK));
@@ -1106,7 +850,7 @@ void odbc_column_lengths(INTERNAL_FUNCTION_PARAMETERS, int type)
}
if ((result = (odbc_result *)zend_fetch_resource(Z_RES_P(pv_res), "ODBC result", le_result)) == NULL) {
- RETURN_FALSE;
+ return;
}
if (result->numcols == 0) {
@@ -1201,7 +945,7 @@ PHP_FUNCTION(odbc_prepare)
}
if (!(conn = (odbc_connection *)zend_fetch_resource2(Z_RES_P(pv_conn), "ODBC-Link", le_conn, le_pconn))) {
- RETURN_FALSE;
+ return;
}
result = (odbc_result *)ecalloc(1, sizeof(odbc_result));
@@ -1308,7 +1052,7 @@ PHP_FUNCTION(odbc_execute)
}
if ((result = (odbc_result *)zend_fetch_resource(Z_RES_P(pv_res), "ODBC result", le_result)) == NULL) {
- RETURN_FALSE;
+ return;
}
/* XXX check for already bound parameters*/
@@ -1514,7 +1258,7 @@ PHP_FUNCTION(odbc_cursor)
}
if ((result = (odbc_result *)zend_fetch_resource(Z_RES_P(pv_res), "ODBC result", le_result)) == NULL) {
- RETURN_FALSE;
+ return;
}
rc = SQLGetInfo(result->conn_ptr->hdbc,SQL_MAX_CURSOR_NAME_LEN, (void *)&max_len,sizeof(max_len),&len);
@@ -1580,7 +1324,7 @@ PHP_FUNCTION(odbc_data_source)
}
if (!(conn = (odbc_connection *)zend_fetch_resource2(Z_RES_P(zv_conn), "ODBC-Link", le_conn, le_pconn))) {
- RETURN_FALSE;
+ return;
}
/* now we have the "connection" lets call the DataSource object */
@@ -1638,7 +1382,7 @@ PHP_FUNCTION(odbc_exec)
}
if (!(conn = (odbc_connection *)zend_fetch_resource2(Z_RES_P(pv_conn), "ODBC-Link", le_conn, le_pconn))) {
- RETURN_FALSE;
+ return;
}
result = (odbc_result *)ecalloc(1, sizeof(odbc_result));
@@ -1734,7 +1478,7 @@ static void php_odbc_fetch_hash(INTERNAL_FUNCTION_PARAMETERS, int result_type)
#endif
if ((result = (odbc_result *)zend_fetch_resource(Z_RES_P(pv_res), "ODBC result", le_result)) == NULL) {
- RETURN_FALSE;
+ return;
}
if (result->numcols == 0) {
@@ -1886,7 +1630,7 @@ PHP_FUNCTION(odbc_fetch_into)
#endif /* HAVE_SQL_EXTENDED_FETCH */
if ((result = (odbc_result *)zend_fetch_resource(Z_RES_P(pv_res), "ODBC result", le_result)) == NULL) {
- RETURN_FALSE;
+ return;
}
if (result->numcols == 0) {
@@ -1992,7 +1736,7 @@ PHP_FUNCTION(solid_fetch_prev)
}
if ((result = (odbc_result *)zend_fetch_resource(Z_RES_P(pv_res), "ODBC result", le_result)) == NULL) {
- RETURN_FALSE;
+ return;
}
if (result->numcols == 0) {
php_error_docref(NULL, E_WARNING, "No tuples available at this result index");
@@ -2034,7 +1778,7 @@ PHP_FUNCTION(odbc_fetch_row)
rownum = pv_row;
if ((result = (odbc_result *)zend_fetch_resource(Z_RES_P(pv_res), "ODBC result", le_result)) == NULL) {
- RETURN_FALSE;
+ return;
}
if (result->numcols == 0) {
@@ -2100,7 +1844,7 @@ PHP_FUNCTION(odbc_result)
}
if ((result = (odbc_result *)zend_fetch_resource(Z_RES_P(pv_res), "ODBC result", le_result)) == NULL) {
- RETURN_FALSE;
+ return;
}
if ((result->numcols == 0)) {
@@ -2279,7 +2023,7 @@ PHP_FUNCTION(odbc_result_all)
}
if ((result = (odbc_result *)zend_fetch_resource(Z_RES_P(pv_res), "ODBC result", le_result)) == NULL) {
- RETURN_FALSE;
+ return;
}
if (result->numcols == 0) {
@@ -2396,7 +2140,7 @@ PHP_FUNCTION(odbc_free_result)
}
if ((result = (odbc_result *)zend_fetch_resource(Z_RES_P(pv_res), "ODBC result", le_result)) == NULL) {
- RETURN_FALSE;
+ return;
}
if (result->values) {
@@ -2695,7 +2439,7 @@ PHP_FUNCTION(odbc_close)
}
if (!(conn = (odbc_connection *)zend_fetch_resource2(Z_RES_P(pv_conn), "ODBC-Link", le_conn, le_pconn))) {
- RETURN_FALSE;
+ return;
}
if (Z_RES_P(pv_conn)->type == le_pconn) {
@@ -2732,7 +2476,7 @@ PHP_FUNCTION(odbc_num_rows)
}
if ((result = (odbc_result *)zend_fetch_resource(Z_RES_P(pv_res), "ODBC result", le_result)) == NULL) {
- RETURN_FALSE;
+ return;
}
SQLRowCount(result->stmt, &rows);
@@ -2754,7 +2498,7 @@ PHP_FUNCTION(odbc_next_result)
}
if ((result = (odbc_result *)zend_fetch_resource(Z_RES_P(pv_res), "ODBC result", le_result)) == NULL) {
- RETURN_FALSE;
+ return;
}
if (result->values) {
@@ -2805,7 +2549,7 @@ PHP_FUNCTION(odbc_num_fields)
}
if ((result = (odbc_result *)zend_fetch_resource(Z_RES_P(pv_res), "ODBC result", le_result)) == NULL) {
- RETURN_FALSE;
+ return;
}
RETURN_LONG(result->numcols);
@@ -2825,7 +2569,7 @@ PHP_FUNCTION(odbc_field_name)
}
if ((result = (odbc_result *)zend_fetch_resource(Z_RES_P(pv_res), "ODBC result", le_result)) == NULL) {
- RETURN_FALSE;
+ return;
}
if (result->numcols == 0) {
@@ -2862,7 +2606,7 @@ PHP_FUNCTION(odbc_field_type)
}
if ((result = (odbc_result *)zend_fetch_resource(Z_RES_P(pv_res), "ODBC result", le_result)) == NULL) {
- RETURN_FALSE;
+ return;
}
if (result->numcols == 0) {
@@ -2881,7 +2625,7 @@ PHP_FUNCTION(odbc_field_type)
}
PHP_ODBC_SQLCOLATTRIBUTE(result->stmt, (SQLUSMALLINT)pv_num, SQL_COLUMN_TYPE_NAME, tmp, 31, &tmplen, NULL);
- RETURN_STRING(tmp)
+ RETURN_STRING(tmp);
}
/* }}} */
@@ -2915,7 +2659,7 @@ PHP_FUNCTION(odbc_field_num)
}
if ((result = (odbc_result *)zend_fetch_resource(Z_RES_P(pv_res), "ODBC result", le_result)) == NULL) {
- RETURN_FALSE;
+ return;
}
if (result->numcols == 0) {
@@ -2952,7 +2696,7 @@ PHP_FUNCTION(odbc_autocommit)
}
if (!(conn = (odbc_connection *)zend_fetch_resource2(Z_RES_P(pv_conn), "ODBC-Link", le_conn, le_pconn))) {
- RETURN_FALSE;
+ return;
}
if (ZEND_NUM_ARGS() > 1) {
@@ -3004,7 +2748,7 @@ static void php_odbc_lasterror(INTERNAL_FUNCTION_PARAMETERS, int mode)
if (ZEND_NUM_ARGS() == 1) {
if (!(conn = (odbc_connection *)zend_fetch_resource2(Z_RES_P(pv_handle), "ODBC-Link", le_conn, le_pconn))) {
- RETURN_FALSE;
+ return;
}
if (mode == 0) {
ret = conn->laststate;
@@ -3062,7 +2806,7 @@ PHP_FUNCTION(odbc_setoption)
switch (pv_which) {
case 1: /* SQLSetConnectOption */
if (!(conn = (odbc_connection *)zend_fetch_resource2(Z_RES_P(pv_handle), "ODBC-Link", le_conn, le_pconn))) {
- RETURN_FALSE;
+ return;
}
if (conn->persistent) {
@@ -3077,7 +2821,7 @@ PHP_FUNCTION(odbc_setoption)
break;
case 2: /* SQLSetStmtOption */
if ((result = (odbc_result *)zend_fetch_resource(Z_RES_P(pv_handle), "ODBC result", le_result)) == NULL) {
- RETURN_FALSE;
+ return;
}
rc = SQLSetStmtOption(result->stmt, (unsigned short) pv_opt, pv_val);
@@ -3118,7 +2862,7 @@ PHP_FUNCTION(odbc_tables)
}
if (!(conn = (odbc_connection *)zend_fetch_resource2(Z_RES_P(pv_conn), "ODBC-Link", le_conn, le_pconn))) {
- RETURN_FALSE;
+ return;
}
result = (odbc_result *)ecalloc(1, sizeof(odbc_result));
@@ -3187,7 +2931,7 @@ PHP_FUNCTION(odbc_columns)
}
if (!(conn = (odbc_connection *)zend_fetch_resource2(Z_RES_P(pv_conn), "ODBC-Link", le_conn, le_pconn))) {
- RETURN_FALSE;
+ return;
}
result = (odbc_result *)ecalloc(1, sizeof(odbc_result));
@@ -3259,7 +3003,7 @@ PHP_FUNCTION(odbc_columnprivileges)
}
if (!(conn = (odbc_connection *)zend_fetch_resource2(Z_RES_P(pv_conn), "ODBC-Link", le_conn, le_pconn))) {
- RETURN_FALSE;
+ return;
}
result = (odbc_result *)ecalloc(1, sizeof(odbc_result));
@@ -3337,7 +3081,7 @@ PHP_FUNCTION(odbc_foreignkeys)
#endif
if (!(conn = (odbc_connection *)zend_fetch_resource2(Z_RES_P(pv_conn), "ODBC-Link", le_conn, le_pconn))) {
- RETURN_FALSE;
+ return;
}
result = (odbc_result *)ecalloc(1, sizeof(odbc_result));
@@ -3405,7 +3149,7 @@ PHP_FUNCTION(odbc_gettypeinfo)
data_type = (SQLSMALLINT) pv_data_type;
if (!(conn = (odbc_connection *)zend_fetch_resource2(Z_RES_P(pv_conn), "ODBC-Link", le_conn, le_pconn))) {
- RETURN_FALSE;
+ return;
}
result = (odbc_result *)ecalloc(1, sizeof(odbc_result));
@@ -3464,7 +3208,7 @@ PHP_FUNCTION(odbc_primarykeys)
}
if (!(conn = (odbc_connection *)zend_fetch_resource2(Z_RES_P(pv_conn), "ODBC-Link", le_conn, le_pconn))) {
- RETURN_FALSE;
+ return;
}
result = (odbc_result *)ecalloc(1, sizeof(odbc_result));
@@ -3532,7 +3276,7 @@ PHP_FUNCTION(odbc_procedurecolumns)
}
if (!(conn = (odbc_connection *)zend_fetch_resource2(Z_RES_P(pv_conn), "ODBC-Link", le_conn, le_pconn))) {
- RETURN_FALSE;
+ return;
}
result = (odbc_result *)ecalloc(1, sizeof(odbc_result));
@@ -3601,7 +3345,7 @@ PHP_FUNCTION(odbc_procedures)
}
if (!(conn = (odbc_connection *)zend_fetch_resource2(Z_RES_P(pv_conn), "ODBC-Link", le_conn, le_pconn))) {
- RETURN_FALSE;
+ return;
}
result = (odbc_result *)ecalloc(1, sizeof(odbc_result));
@@ -3671,7 +3415,7 @@ PHP_FUNCTION(odbc_specialcolumns)
nullable = (SQLUSMALLINT) vnullable;
if (!(conn = (odbc_connection *)zend_fetch_resource2(Z_RES_P(pv_conn), "ODBC-Link", le_conn, le_pconn))) {
- RETURN_FALSE;
+ return;
}
result = (odbc_result *)ecalloc(1, sizeof(odbc_result));
@@ -3742,7 +3486,7 @@ PHP_FUNCTION(odbc_statistics)
reserved = (SQLUSMALLINT) vreserved;
if (!(conn = (odbc_connection *)zend_fetch_resource2(Z_RES_P(pv_conn), "ODBC-Link", le_conn, le_pconn))) {
- RETURN_FALSE;
+ return;
}
result = (odbc_result *)ecalloc(1, sizeof(odbc_result));
@@ -3807,7 +3551,7 @@ PHP_FUNCTION(odbc_tableprivileges)
}
if (!(conn = (odbc_connection *)zend_fetch_resource2(Z_RES_P(pv_conn), "ODBC-Link", le_conn, le_pconn))) {
- RETURN_FALSE;
+ return;
}
result = (odbc_result *)ecalloc(1, sizeof(odbc_result));
diff --git a/ext/odbc/php_odbc.h b/ext/odbc/php_odbc.h
index 351b31ea40..500c784de2 100644
--- a/ext/odbc/php_odbc.h
+++ b/ext/odbc/php_odbc.h
@@ -1,7 +1,5 @@
/*
+----------------------------------------------------------------------+
- | PHP Version 7 |
- +----------------------------------------------------------------------+
| Copyright (c) The PHP Group |
+----------------------------------------------------------------------+
| This source file is subject to version 3.01 of the PHP license, |
diff --git a/ext/odbc/php_odbc_includes.h b/ext/odbc/php_odbc_includes.h
index 858a28af68..5e2e83e7b2 100644
--- a/ext/odbc/php_odbc_includes.h
+++ b/ext/odbc/php_odbc_includes.h
@@ -1,7 +1,5 @@
/*
+----------------------------------------------------------------------+
- | PHP Version 7 |
- +----------------------------------------------------------------------+
| Copyright (c) The PHP Group |
+----------------------------------------------------------------------+
| This source file is subject to version 3.01 of the PHP license, |
diff --git a/ext/odbc/tests/bug78473.phpt b/ext/odbc/tests/bug78473.phpt
index fd73b6cc07..c595d51fad 100644
--- a/ext/odbc/tests/bug78473.phpt
+++ b/ext/odbc/tests/bug78473.phpt
@@ -6,9 +6,13 @@ if (!extension_loaded('odbc')) die('skip odbc extension not available');
?>
--FILE--
<?php
-odbc_close(STDIN);
+try {
+ odbc_close(STDIN);
+} catch (TypeError $err) {
+ echo $err->getMessage(), PHP_EOL;
+}
var_dump(STDIN);
?>
--EXPECTF--
-Warning: odbc_close(): supplied resource is not a valid ODBC-Link resource in %s on line %d
+odbc_close(): supplied resource is not a valid ODBC-Link resource
resource(%d) of type (stream)
diff --git a/ext/odbc/tests/odbc_data_source_001.phpt b/ext/odbc/tests/odbc_data_source_001.phpt
index 8f5767315a..fedbbc1b02 100644
--- a/ext/odbc/tests/odbc_data_source_001.phpt
+++ b/ext/odbc/tests/odbc_data_source_001.phpt
@@ -15,16 +15,12 @@ include 'config.inc';
$conn = odbc_connect($dsn, $user, $pass);
var_dump(odbc_data_source($conn, NULL));
-var_dump(odbc_data_source($conn, ''));
var_dump(odbc_data_source($conn, SQL_FETCH_FIRST));
?>
--EXPECTF--
Warning: odbc_data_source(): Invalid fetch type (0) in %s on line %d
bool(false)
-
-Warning: odbc_data_source() expects parameter 2 to be int, string given in %s on line %d
-NULL
array(%d) {
%a
}
diff --git a/ext/odbc/tests/odbc_free_result_001.phpt b/ext/odbc/tests/odbc_free_result_001.phpt
index cdc421117d..223b3f0a4c 100644
--- a/ext/odbc/tests/odbc_free_result_001.phpt
+++ b/ext/odbc/tests/odbc_free_result_001.phpt
@@ -22,10 +22,21 @@ $res = odbc_exec($conn, 'SELECT * FROM FOO');
var_dump(odbc_fetch_row($res));
var_dump(odbc_result($res, 'test'));
var_dump(odbc_free_result($res));
-var_dump(odbc_free_result($conn));
-var_dump(odbc_free_result(NULL));
-var_dump(odbc_fetch_row($res));
-var_dump(odbc_result($res, 'test'));
+try {
+ var_dump(odbc_free_result($conn));
+} catch (TypeError $e) {
+ echo $e->getMessage(), "\n";
+}
+try {
+ var_dump(odbc_fetch_row($res));
+} catch (TypeError $e) {
+ echo $e->getMessage(), "\n";
+}
+try {
+ var_dump(odbc_result($res, 'test'));
+} catch (TypeError $e) {
+ echo $e->getMessage(), "\n";
+}
odbc_exec($conn, 'DROP TABLE FOO');
@@ -36,15 +47,6 @@ odbc_exec($conn, 'DROP DATABASE odbcTEST');
bool(true)
string(1) "1"
bool(true)
-
-Warning: odbc_free_result(): supplied resource is not a valid ODBC result resource in %s on line %d
-bool(false)
-
-Warning: odbc_free_result() expects parameter 1 to be resource, null given in %s on line %d
-NULL
-
-Warning: odbc_fetch_row(): supplied resource is not a valid ODBC result resource in %s on line %d
-bool(false)
-
-Warning: odbc_result(): supplied resource is not a valid ODBC result resource in %s on line %d
-bool(false)
+odbc_free_result(): supplied resource is not a valid ODBC result resource
+odbc_fetch_row(): supplied resource is not a valid ODBC result resource
+odbc_result(): supplied resource is not a valid ODBC result resource