From: Christoph M. Becker Date: Fri, 25 Sep 2020 15:27:41 +0000 (+0200) Subject: Fix #80150: Failure to fetch error message X-Git-Tag: php-7.3.24RC1~28 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=df5efa2fcdbcc9f6dea792caa149897060b350f7;p=php Fix #80150: Failure to fetch error message In case of statement related errors, we need to pass the respective statement handle to `SQLError()`. Closes GH-6217. --- diff --git a/NEWS b/NEWS index 538e121a5a..923d95cd5c 100644 --- 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 diff --git a/ext/odbc/php_odbc.c b/ext/odbc/php_odbc.c index a93252f7c4..e26368dfeb 100644 --- a/ext/odbc/php_odbc.c +++ b/ext/odbc/php_odbc.c @@ -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; }