]> granicus.if.org Git - php/commitdiff
refs #34630.
authorWez Furlong <wez@php.net>
Sun, 25 Sep 2005 00:47:00 +0000 (00:47 +0000)
committerWez Furlong <wez@php.net>
Sun, 25 Sep 2005 00:47:00 +0000 (00:47 +0000)
Real lob support for oracle will appear after the PHP 5.1 release.

ext/pdo_oci/oci_statement.c
ext/pdo_oci/tests/bug_33707.phpt

index 10a4d2f32508a27e396c67c1ea932ac1935abb54..d4aa38395f3ed6859a612d704334b62357effccb 100755 (executable)
@@ -242,10 +242,26 @@ static int oci_stmt_param_hook(pdo_stmt_t *stmt, struct pdo_bound_param_data *pa
                        
                                /* figure out what we're doing */
                                switch (PDO_PARAM_TYPE(param->param_type)) {
-                                       case PDO_PARAM_LOB:
                                        case PDO_PARAM_STMT:
                                                return 0;
 
+                                       case PDO_PARAM_LOB:
+                                               /* fake lobs for now */
+                                               if (Z_TYPE_P(param->parameter) == IS_RESOURCE) {
+                                                       php_stream *stm;
+                                                       php_stream_from_zval_no_verify(stm, &param->parameter);
+                                                       if (stm) {
+                                                               SEPARATE_ZVAL_IF_NOT_REF(&param->parameter);
+                                                               Z_TYPE_P(param->parameter) = IS_STRING;
+                                                               Z_STRLEN_P(param->parameter) = php_stream_copy_to_mem(stm,
+                                                                               &Z_STRVAL_P(param->parameter), PHP_STREAM_COPY_ALL, 0);
+                                                       } else {
+                                                               pdo_raise_impl_error(stmt->dbh, stmt, "HY105", "Expected a stream resource");
+                                                               return 0;
+                                                       }
+                                               }
+                                               /* fall through */
+
                                        case PDO_PARAM_STR:
                                        default:
                                                P->oci_type = SQLT_CHR;
index 6583115778ffba97916ed756b4a204f5159d641d..17ea37f74f35d6d6f89a3583f3e486bca4c7651f 100644 (file)
@@ -25,6 +25,6 @@ array(3) {
   [1]=>
   int(942)
   [2]=>
-  string(113) "OCIStmtExecute: ORA-00942: table or view does not exist
+  string(%d) "OCIStmtExecute: ORA-00942: table or view does not exist
  (%s:%d)"
 }