From: [EMAIL PROTECTED]
Operating system: Linux
PHP version: 4.0.4pl1
PHP Bug Type: ODBC related
Bug description: odbc_setoption() cannot accept string value (patch included)
When I tried to use odbc_setoption() to set file extension
name:
odbc_setoption($sth, 2, 2001, "JPG"); /*2001 means SQL_EXTENSION_NAME*/
php will hang.
The patch followed:
****** BEGIN PATCH ***********
--- php_odbc.c.old Wed Jan 3 23:04:50 2001
+++ php_odbc.c Thu Feb 22 10:29:52 2001
@@ -2393,6 +2393,7 @@
odbc_result *result;
RETCODE rc;
pval **pv_handle, **pv_which, **pv_opt, **pv_val;
+ UDWORD val;
if ( zend_get_parameters_ex(4, &pv_handle, &pv_which, &pv_opt, &pv_val) ==
FAILURE) {
WRONG_PARAM_COUNT;
@@ -2400,7 +2401,20 @@
convert_to_long_ex(pv_which);
convert_to_long_ex(pv_opt);
+ switch (Z_TYPE_PP(pv_val)) {
+ case IS_LONG:
convert_to_long_ex(pv_val);
+ val = (*pv_val)->value.lval;
+ break;
+ case IS_STRING:
+ convert_to_string_ex(pv_val);
+ val = (UDWORD) (*pv_val)->value.str.val;
+ break;
+ default:
+ php_error(E_WARNING, "Unknown param type");
+ RETURN_FALSE;
+ break;
+ }
switch ((*pv_which)->value.lval) {
case 1: /* SQLSetConnectOption */
@@ -2409,7 +2423,7 @@
php_error(E_WARNING, "Can't set option for persistent
connection");
RETURN_FALSE;
}
- rc = SQLSetConnectOption(conn->hdbc, (unsigned
short)((*pv_opt)->value.lval), (*pv_val)->value.lval);
+ rc = SQLSetConnectOption(conn->hdbc, (unsigned
+short)((*pv_opt)->value.lval), val);
if (rc != SQL_SUCCESS && rc != SQL_SUCCESS_WITH_INFO) {
odbc_sql_error(conn->henv, conn->hdbc, SQL_NULL_HSTMT,
"SetConnectOption");
RETURN_FALSE;
@@ -2418,7 +2432,7 @@
case 2: /* SQLSetStmtOption */
ZEND_FETCH_RESOURCE(result, odbc_result *, pv_handle, -1,
"ODBC result", le_result);
- rc = SQLSetStmtOption(result->stmt, (unsigned
short)((*pv_opt)->value.lval), ((*pv_val)->value.lval));
+ rc = SQLSetStmtOption(result->stmt, (unsigned
+short)((*pv_opt)->value.lval), val);
if (rc != SQL_SUCCESS && rc != SQL_SUCCESS_WITH_INFO) {
odbc_sql_error(result->conn_ptr->henv,
result->conn_ptr->hdbc, result->stmt, "SetStmtOption");
****** END PATCH ***********
--
Edit Bug report at: http://bugs.php.net/?id=9397&edit=1
--
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]