Hey,

I'm not quite sure it's correct for the error message to print HTML itself. 
It's probably more correct to do this from user land.
In any case, you should not be using malloc()/free() but emalloc()/efree(). 
If the request gets interrupted the memory will be freed if you're using 
emalloc().

Andi

At 12:59 12/03/2002 -0800, Walter A. Boring IV wrote:
>Ahh.  very kewl patch Dan.
>
>Walt
>
>On Tue, 2002-03-12 at 12:48, Daniel Ceregatti wrote:
> > Hi,
> >
> > I wrote a small patch to oci8.c's OCIError function which places the
> > following tag:
> >
> > <span style="color:#FF0000; font-weight:bold">&lt;ERROR&gt;</span>
> >
> > just before an error in a sql statement and adds the modified statement
> > text into a new element called "sqltext" to the array returned by
> > OCIError, much the same way sqlplus adds an asterisk under an error.
> >
> > I find this very useful, and I'm hoping you will too. I've attached the
> > patch.
> >
> > Thanks,
> >
> > Daniel Ceregatti
> > ----
> >
>
> > --- php-4.1.2/ext/oci8/oci8.c.orig    Tue Mar 12 11:56:17 2002
> > +++ php-4.1.2/ext/oci8/oci8.c Tue Mar 12 12:23:35 2002
> > @@ -4090,10 +4090,13 @@
> >       zval **arg;
> >       oci_statement *statement;
> >       oci_connection *connection;
> > -    text errbuf[512];
> > -    sb4 errcode = 0;
> > +     text errbuf[512];
> > +     sb4 errcode = 0;
> >       sword error = 0;
> >       dvoid *errh = NULL;
> > +     ub2 errorofs = 0;
> > +     text *sqltext;
> > +     char *retsql;
> >
> >       if (zend_get_parameters_ex(1, &arg) == SUCCESS) {
> >               statement = (oci_statement *) zend_fetch_resource(arg 
> TSRMLS_CC, -1, NULL, NULL, 1, le_stmt);
> > @@ -4130,10 +4133,33 @@
> >                               (ub4) sizeof(errbuf),
> >                               (ub4) OCI_HTYPE_ERROR));
> >
> > +     CALL_OCI_RETURN(statement->error, OCIAttrGet(
> > +                             (dvoid *)statement->pStmt,
> > +                             OCI_HTYPE_STMT,
> > +                             (text *) &sqltext,
> > +                             (ub4 *)0,
> > +                             OCI_ATTR_STATEMENT,
> > +                             statement->pError));
> > +
> > +     CALL_OCI_RETURN(statement->error, OCIAttrGet(
> > +                             (dvoid *)statement->pStmt,
> > +                             OCI_HTYPE_STMT,
> > +                             (ub2 *)&errorofs,
> > +                             (ub4 *)0,
> > +                             OCI_ATTR_PARSE_ERROR_OFFSET,
> > +                             statement->pError));
> > +
> >       if (errcode) {
> > +             retsql = (char *) malloc (strlen (sqltext) + 100);
> > +             memset (retsql, 0, strlen (sqltext) + 100);
> > +             strncat (retsql, sqltext, (int) errorofs);
> > +             strcat (retsql, "<span style=\"color:#FF0000; 
> font-weight:bold\">&lt;ERROR&gt;</span>");
> > +             strcat (retsql, (char *) sqltext + (int) errorofs);
> >               array_init(return_value);
> >               add_assoc_long(return_value, "code", errcode);
> > +             add_assoc_string(return_value, "sqltext", (char *) 
> retsql, 1);
> >               add_assoc_string(return_value, "message", (char*) errbuf, 1);
> > +             free (retsql);
> >       } else {
> >               RETURN_FALSE;
> >       }
> >
> > ----
> >
>
> > --
> > PHP Development Mailing List <http://www.php.net/>
> > To unsubscribe, visit: http://www.php.net/unsub.php
>
>
>--
>PHP Development Mailing List <http://www.php.net/>
>To unsubscribe, visit: http://www.php.net/unsub.php



-- 
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to