}
/* }}} */
-static long oci_handle_doer(pdo_dbh_t *dbh, const char *sql, size_t sql_len) /* {{{ */
+static zend_long oci_handle_doer(pdo_dbh_t *dbh, const char *sql, size_t sql_len) /* {{{ */
{
pdo_oci_db_handle *H = (pdo_oci_db_handle *)dbh->driver_data;
OCIStmt *stmt;
}
/* }}} */
-static int oci_handle_set_attribute(pdo_dbh_t *dbh, long attr, zval *val) /* {{{ */
+static int oci_handle_set_attribute(pdo_dbh_t *dbh, zend_long attr, zval *val) /* {{{ */
{
pdo_oci_db_handle *H = (pdo_oci_db_handle *)dbh->driver_data;
}
/* }}} */
-static int oci_handle_get_attribute(pdo_dbh_t *dbh, long attr, zval *return_value) /* {{{ */
+static int oci_handle_get_attribute(pdo_dbh_t *dbh, zend_long attr, zval *return_value) /* {{{ */
{
pdo_oci_db_handle *H = (pdo_oci_db_handle *)dbh->driver_data;
if (OCIServerRelease(H->svc, H->err, infostr, (ub4)sizeof(infostr), (ub1)OCI_HTYPE_SVCCTX, &vernum))
{
- ZVAL_STRING(return_value, "<<Unknown>>", 1);
+ ZVAL_STRING(return_value, "<<Unknown>>");
} else {
if (attr == PDO_ATTR_SERVER_INFO) {
- ZVAL_STRING(return_value, (char *)infostr, 1);
+ ZVAL_STRING(return_value, (char *)infostr);
} else {
slprintf(verstr, sizeof(verstr), "%d.%d.%d.%d.%d",
(int)((vernum>>24) & 0xFF), /* version number */
(int)((vernum>>8) & 0x0F), /* port release number */
(int)((vernum>>0) & 0xFF)); /* port update number */
- ZVAL_STRING(return_value, verstr, 1);
+ ZVAL_STRING(return_value, verstr);
}
}
return TRUE;
OCIClientVersion(&major, &minor, &update, &patch, &port_update);
slprintf(verstr, sizeof(verstr), "%d.%d.%d.%d.%d", major, minor, update, patch, port_update);
- ZVAL_STRING(return_value, verstr, 1);
+ ZVAL_STRING(return_value, verstr);
#elif defined(PHP_PDO_OCI_CLIENT_VERSION)
/* Compile time client version */
- ZVAL_STRING(return_value, PHP_PDO_OCI_CLIENT_VERSION, 1);
+ ZVAL_STRING(return_value, PHP_PDO_OCI_CLIENT_VERSION);
#else
return FALSE;
struct pdo_bound_param_data *param = (struct pdo_bound_param_data*)ctx;
pdo_oci_bound_param *P = (pdo_oci_bound_param*)param->driver_data;
- if (!param || !param->parameter) {
+ if (!param) {
php_error_docref(NULL, E_WARNING, "param is NULL in oci_bind_input_cb; this should not happen");
return OCI_ERROR;
}
if (P->thing) {
*bufpp = P->thing;
*alenp = sizeof(void*);
- } else if (ZVAL_IS_NULL(param->parameter)) {
+ } else if (ZVAL_IS_NULL(¶m->parameter)) {
/* insert a NULL value into the column */
P->indicator = -1; /* NULL */
*bufpp = 0;
*alenp = -1;
} else if (!P->thing) {
/* regular string bind */
- convert_to_string(param->parameter);
- *bufpp = Z_STRVAL_P(param->parameter);
- *alenp = Z_STRLEN_P(param->parameter);
+ convert_to_string(¶m->parameter);
+ *bufpp = Z_STRVAL(param->parameter);
+ *alenp = Z_STRLEN(param->parameter);
}
*piecep = OCI_ONE_PIECE;
struct pdo_bound_param_data *param = (struct pdo_bound_param_data*)ctx;
pdo_oci_bound_param *P = (pdo_oci_bound_param*)param->driver_data;
- if (!param || !param->parameter) {
+ if (!param) {
php_error_docref(NULL, E_WARNING, "param is NULL in oci_bind_output_cb; this should not happen");
return OCI_ERROR;
}
return OCI_CONTINUE;
}
- if (Z_TYPE_P(param->parameter) == IS_OBJECT || Z_TYPE_P(param->parameter) == IS_RESOURCE) {
+ if (Z_TYPE(param->parameter) == IS_OBJECT || Z_TYPE(param->parameter) == IS_RESOURCE) {
return OCI_CONTINUE;
}
- convert_to_string(param->parameter);
- zval_dtor(param->parameter);
+ convert_to_string(¶m->parameter);
+ zval_dtor(¶m->parameter);
- Z_STRLEN_P(param->parameter) = param->max_value_len;
- Z_STRVAL_P(param->parameter) = ecalloc(1, Z_STRLEN_P(param->parameter)+1);
+ Z_STRLEN(param->parameter) = param->max_value_len;
+ Z_STR(param->parameter) = ecalloc(1, Z_STRLEN(param->parameter)+1);
P->used_for_output = 1;
- P->actual_len = Z_STRLEN_P(param->parameter);
+ P->actual_len = Z_STRLEN(param->parameter);
*alenpp = &P->actual_len;
- *bufpp = Z_STRVAL_P(param->parameter);
+ *bufpp = Z_STRVAL(param->parameter);
*piecep = OCI_ONE_PIECE;
*rcodepp = &P->retcode;
*indpp = &P->indicator;
if (param->name) {
STMT_CALL(OCIBindByName, (S->stmt,
- &P->bind, S->err, (text*)param->name,
- param->namelen, 0, value_sz, P->oci_type,
+ &P->bind, S->err, (text*)param->name->val,
+ param->name->len, 0, value_sz, P->oci_type,
&P->indicator, 0, &P->retcode, 0, 0,
OCI_DATA_AT_EXEC));
} else {
if (P->used_for_output) {
if (P->indicator == -1) {
/* set up a NULL value */
- if (Z_TYPE_P(param->parameter) == IS_STRING
-#if ZEND_EXTENSION_API_NO < 220040718
- && Z_STRVAL_P(param->parameter) != empty_string
-#endif
- ) {
+ if (Z_TYPE(param->parameter) == IS_STRING) {
/* OCI likes to stick non-terminated strings in things */
- *Z_STRVAL_P(param->parameter) = '\0';
+ *Z_STRVAL(param->parameter) = '\0';
}
- zval_dtor(param->parameter);
- ZVAL_NULL(param->parameter);
- } else if (Z_TYPE_P(param->parameter) == IS_STRING
-#if ZEND_EXTENSION_API_NO < 220040718
- && Z_STRVAL_P(param->parameter) != empty_string
-#endif
- ) {
- Z_STRLEN_P(param->parameter) = P->actual_len;
- Z_STRVAL_P(param->parameter) = erealloc(Z_STRVAL_P(param->parameter), P->actual_len+1);
- Z_STRVAL_P(param->parameter)[P->actual_len] = '\0';
+ zval_dtor(¶m->parameter);
+ ZVAL_UNDEF(¶m->parameter);
+ } else if (Z_TYPE(param->parameter) == IS_STRING) {
+ Z_STRLEN(param->parameter) = P->actual_len;
+ Z_STR(param->parameter) = erealloc(Z_STRVAL(param->parameter), P->actual_len+1);
+ Z_STRVAL(param->parameter)[P->actual_len] = '\0';
}
} else if (PDO_PARAM_TYPE(param->param_type) == PDO_PARAM_LOB && P->thing) {
php_stream *stm;
- if (Z_TYPE_P(param->parameter) == IS_NULL) {
+ if (Z_TYPE(param->parameter) == IS_NULL) {
/* if the param is NULL, then we assume that they
* wanted to bind a lob locator into it from the query
* */
stm = oci_create_lob_stream(stmt, (OCILobLocator*)P->thing);
if (stm) {
OCILobOpen(S->H->svc, S->err, (OCILobLocator*)P->thing, OCI_LOB_READWRITE);
- php_stream_to_zval(stm, param->parameter);
+ php_stream_to_zval(stm, ¶m->parameter);
P->thing = NULL;
}
} else {
} while (1);
OCILobClose(S->H->svc, S->err, (OCILobLocator*)P->thing);
OCILobFlushBuffer(S->H->svc, S->err, (OCILobLocator*)P->thing, 0);
- } else if (Z_TYPE_P(param->parameter) == IS_STRING) {
+ } else if (Z_TYPE(param->parameter) == IS_STRING) {
/* stick the string into the LOB */
- consume = Z_STRVAL_P(param->parameter);
- n = Z_STRLEN_P(param->parameter);
+ consume = Z_STRVAL(param->parameter);
+ n = Z_STRLEN(param->parameter);
if (n) {
OCILobOpen(S->H->svc, S->err, (OCILobLocator*)P->thing, OCI_LOB_READWRITE);
while (n) {
return 1;
} /* }}} */
-static int oci_stmt_fetch(pdo_stmt_t *stmt, enum pdo_fetch_orientation ori, long offset) /* {{{ */
+static int oci_stmt_fetch(pdo_stmt_t *stmt, enum pdo_fetch_orientation ori, zend_long offset) /* {{{ */
{
#if HAVE_OCISTMTFETCH2
ub4 ociori;
efree(self);
}
- php_pdo_stmt_delref(stmt);
+ free_statement(stmt);
return 0;
}
stm = php_stream_alloc(&oci_blob_stream_ops, self, 0, "r+b");
if (stm) {
- php_pdo_stmt_addref(stmt);
return stm;
}