]> granicus.if.org Git - php/commitdiff
Fix #80150: Failure to fetch error message
authorChristoph M. Becker <cmbecker69@gmx.de>
Fri, 25 Sep 2020 15:27:41 +0000 (17:27 +0200)
committerChristoph M. Becker <cmbecker69@gmx.de>
Tue, 29 Sep 2020 09:02:51 +0000 (11:02 +0200)
In case of statement related errors, we need to pass the respective
statement handle to `SQLError()`.

Closes GH-6217.

NEWS
ext/odbc/php_odbc.c

diff --git a/NEWS b/NEWS
index 538e121a5a537edd22fd4b22e07a190ba3038e36..923d95cd5cf3003954f73fb534c143b223ae5087 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -16,6 +16,7 @@ PHP                                                                        NEWS
   . Fixed bug #78470 (odbc_specialcolumns() no longer accepts $nullable). (cmb)
   . Fixed bug #80147 (BINARY strings may not be properly zero-terminated).
     (cmb)
+  . Fixed bug #80150 (Failure to fetch error message). (cmb)
 
 - OPcache:
   . Fixed bug #80083 (Optimizer pass 6 removes variables used for ibm_db2 data
index a93252f7c450a8bea9443cbcbdaefb9a3a9893d5..e26368dfebabbd003b9b3653ab70c82756f9aceb 100644 (file)
@@ -3156,7 +3156,7 @@ PHP_FUNCTION(odbc_tables)
                        type, SAFE_SQL_NTS(type));
 
        if (rc == SQL_ERROR) {
-               odbc_sql_error(conn, SQL_NULL_HSTMT, "SQLTables");
+               odbc_sql_error(conn, result->stmt, "SQLTables");
                efree(result);
                RETURN_FALSE;
        }
@@ -3227,7 +3227,7 @@ PHP_FUNCTION(odbc_columns)
                        column, (SQLSMALLINT) column_len);
 
        if (rc == SQL_ERROR) {
-               odbc_sql_error(conn, SQL_NULL_HSTMT, "SQLColumns");
+               odbc_sql_error(conn, result->stmt, "SQLColumns");
                efree(result);
                RETURN_FALSE;
        }
@@ -3292,7 +3292,7 @@ PHP_FUNCTION(odbc_columnprivileges)
                        column, SAFE_SQL_NTS(column));
 
        if (rc == SQL_ERROR) {
-               odbc_sql_error(conn, SQL_NULL_HSTMT, "SQLColumnPrivileges");
+               odbc_sql_error(conn, result->stmt, "SQLColumnPrivileges");
                efree(result);
                RETURN_FALSE;
        }
@@ -3372,7 +3372,7 @@ PHP_FUNCTION(odbc_foreignkeys)
                        ftable, SAFE_SQL_NTS(ftable) );
 
        if (rc == SQL_ERROR) {
-               odbc_sql_error(conn, SQL_NULL_HSTMT, "SQLForeignKeys");
+               odbc_sql_error(conn, result->stmt, "SQLForeignKeys");
                efree(result);
                RETURN_FALSE;
        }
@@ -3434,7 +3434,7 @@ PHP_FUNCTION(odbc_gettypeinfo)
        rc = SQLGetTypeInfo(result->stmt, data_type );
 
        if (rc == SQL_ERROR) {
-               odbc_sql_error(conn, SQL_NULL_HSTMT, "SQLGetTypeInfo");
+               odbc_sql_error(conn, result->stmt, "SQLGetTypeInfo");
                efree(result);
                RETURN_FALSE;
        }
@@ -3496,7 +3496,7 @@ PHP_FUNCTION(odbc_primarykeys)
                        table, SAFE_SQL_NTS(table) );
 
        if (rc == SQL_ERROR) {
-               odbc_sql_error(conn, SQL_NULL_HSTMT, "SQLPrimaryKeys");
+               odbc_sql_error(conn, result->stmt, "SQLPrimaryKeys");
                efree(result);
                RETURN_FALSE;
        }
@@ -3565,7 +3565,7 @@ PHP_FUNCTION(odbc_procedurecolumns)
                        col, SAFE_SQL_NTS(col) );
 
        if (rc == SQL_ERROR) {
-               odbc_sql_error(conn, SQL_NULL_HSTMT, "SQLProcedureColumns");
+               odbc_sql_error(conn, result->stmt, "SQLProcedureColumns");
                efree(result);
                RETURN_FALSE;
        }
@@ -3633,7 +3633,7 @@ PHP_FUNCTION(odbc_procedures)
                        proc, SAFE_SQL_NTS(proc) );
 
        if (rc == SQL_ERROR) {
-               odbc_sql_error(conn, SQL_NULL_HSTMT, "SQLProcedures");
+               odbc_sql_error(conn, result->stmt, "SQLProcedures");
                efree(result);
                RETURN_FALSE;
        }
@@ -3706,7 +3706,7 @@ PHP_FUNCTION(odbc_specialcolumns)
                        nullable);
 
        if (rc == SQL_ERROR) {
-               odbc_sql_error(conn, SQL_NULL_HSTMT, "SQLSpecialColumns");
+               odbc_sql_error(conn, result->stmt, "SQLSpecialColumns");
                efree(result);
                RETURN_FALSE;
        }
@@ -3776,7 +3776,7 @@ PHP_FUNCTION(odbc_statistics)
                        reserved);
 
        if (rc == SQL_ERROR) {
-               odbc_sql_error(conn, SQL_NULL_HSTMT, "SQLStatistics");
+               odbc_sql_error(conn, result->stmt, "SQLStatistics");
                efree(result);
                RETURN_FALSE;
        }
@@ -3839,7 +3839,7 @@ PHP_FUNCTION(odbc_tableprivileges)
                        table, SAFE_SQL_NTS(table));
 
        if (rc == SQL_ERROR) {
-               odbc_sql_error(conn, SQL_NULL_HSTMT, "SQLTablePrivileges");
+               odbc_sql_error(conn, result->stmt, "SQLTablePrivileges");
                efree(result);
                RETURN_FALSE;
        }