]> granicus.if.org Git - php/commitdiff
MFB: Fixed bug #39971 (pg_insert/pg_update do not allow now() to be used for
authorIlia Alshanetsky <iliaa@php.net>
Fri, 29 Dec 2006 00:34:53 +0000 (00:34 +0000)
committerIlia Alshanetsky <iliaa@php.net>
Fri, 29 Dec 2006 00:34:53 +0000 (00:34 +0000)
timestamp fields).

ext/pgsql/pgsql.c

index 7c69108ce59da22198f11f1870a40be437fa8d45..79b295f9daf209a38296003964354ba374394521 100644 (file)
@@ -4955,14 +4955,14 @@ PHP_PGSQL_API int php_pgsql_convert(PGconn *pg_link, const char *table_name, con
                                switch(Z_TYPE_PP(val)) {
                                        case IS_STRING:
                                                if (Z_STRLEN_PP(val) == 0) {
-                                                       ZVAL_STRING(new_val, "NULL", 1);
-                                               }
-                                               else {
+                                                       ZVAL_STRINGL(new_val, "NULL", sizeof("NULL")-1, 1);
+                                               } else if (!strcasecmp(Z_STRVAL_PP(val), "now()")) {
+                                                       ZVAL_STRINGL(new_val, "NOW()", sizeof("NOW()")-1, 1);
+                                               } else {
                                                        /* FIXME: better regex must be used */
                                                        if (php_pgsql_convert_match(Z_STRVAL_PP(val), "^([0-9]{4}[/-][0-9]{1,2}[/-][0-9]{1,2})([ \\t]+(([0-9]{1,2}:[0-9]{1,2}){1}(:[0-9]{1,2}){0,1}(\\.[0-9]+){0,1}([ \\t]*([+-][0-9]{1,2}(:[0-9]{1,2}){0,1}|[a-zA-Z]{1,5})){0,1})){0,1}$", 1 TSRMLS_CC) == FAILURE) {
                                                                err = 1;
-                                                       }
-                                                       else {
+                                                       } else {
                                                                ZVAL_STRING(new_val, Z_STRVAL_PP(val), 1);
                                                                php_pgsql_add_quotes(new_val, 1 TSRMLS_CC);
                                                        }
@@ -4970,7 +4970,7 @@ PHP_PGSQL_API int php_pgsql_convert(PGconn *pg_link, const char *table_name, con
                                                break;
                                
                                        case IS_NULL:
-                                               ZVAL_STRING(new_val, "NULL", 1);
+                                               ZVAL_STRINGL(new_val, "NULL", sizeof("NULL")-1, 1);
                                                break;
 
                                        default: