Foros del Web » Programando para Internet » PHP »

Mensaje de error:Warning: OCI-Collection::append() expects parameter 1 to be string,

Estas en el tema de Mensaje de error:Warning: OCI-Collection::append() expects parameter 1 to be string, en el foro de PHP en Foros del Web. Hola amigos: Este es el caso para que me ayuden por favor Existe 2 archivos, uno para llenar los datos y otro que recibe esos ...
  #1 (permalink)  
Antiguo 10/03/2008, 09:43
 
Fecha de Ingreso: enero-2008
Mensajes: 20
Antigüedad: 16 años, 3 meses
Puntos: 0
Mensaje de error:Warning: OCI-Collection::append() expects parameter 1 to be string,

Hola amigos:
Este es el caso para que me ayuden por favor
Existe 2 archivos, uno para llenar los datos y otro que recibe esos datos los guarda por medio de un procedimiento que llama
Bueno la cosa es asi cuando se llena los datos del formulario existe una parte
que hay un no y un si (type=radio)
Al elejir no aparecen 2 campos y al elejir si aparecen los 2 campo mas 5 campos mas
Cuando guarda los campos del formulario mas la eleccion de no que se encuentra los 3 campos el archivo que guarda llama al porcedimiento y guarda el formulario
pero cuando guarda el formulario mas la elecion si que es encuentra los 2 campo mas otros 5 me tira el error
Warning: OCI-Collection::append() expects parameter 1 to be string, in C:\AppServ\www\caucion\AccesoMenu\ing_SOL_tarjeta. php on line 397

el codigo que almacena los campos atraves del procedimiento es este

if(isset($ccGESTION_CODOFICINABANCO) and $ccGESTION_CODOFICINABANCO!="" ){
//echo "<br>GESTION_CODOFICINABANCO seteado y su valor es $ccGESTION_CODOFICINABANCO<br>";
$ofibancogest->append(isset($ccGESTION_CODOFICINABANCO) ? $ccGESTION_CODOFICINABANCO : 0);


}else if(isset($ccGESTIONCODOFICINABANCO) and $ccGESTIONCODOFICINABANCO!="" ){

// echo "<br>ccGESTIONCODOFICINABANCO seteado y su valor es $ccGESTIONCODOFICINABANCO <br>";

$ofibancogest->append(isset($ccGESTIONCODOFICINABANCO) ? $ccGESTIONCODOFICINABANCO : 0);

}

if(isset($ccGESTION_CODPLAZA)and $ccGESTION_CODPLAZA!=""){

//echo"<br>GESTION_CODPLAZA seteado y su valor es $ccGESTION_CODPLAZA<br>";

$plabancogest->append(isset($ccGESTION_CODPLAZA) ? $ccGESTION_CODPLAZA : 0);


}else if(isset($ccGESTIONCODPLAZA) and $ccGESTIONCODPLAZA!=""){

// echo "<br>ccGESTIONCODPLAZA Seteado y su valor es $ccGESTIONCODPLAZA <br>";

$plabancogest->append(isset($ccGESTIONCODPLAZA) ? $ccGESTIONCODPLAZA : 0);

}
bueno la cosa es asi los campos $ccGESTION_CODOFICINABANCO y ccGESTION_CODPLAZA son los campos que se encuentran en el no que los guada
pero cuando se elige si los campos ccGESTIONCODPLAZA y ccGESTIONCODOFICINABANCO los llena pero no los guarda

Ahora como ven existe 2 arreglo el primero
$ofibancogest que contiene

$ofibancogest->append(isset($ccGESTION_CODOFICINABANCO) ? $ccGESTION_CODOFICINABANCO : 0); y

$ofibancogest->append(isset($ccGESTIONCODOFICINABANCO) ? $ccGESTIONCODOFICINABANCO : 0);

que este arreglo llama al procedimiento
asi
ocibindbyname($stmt, ":IN_ARR_GESTION_CODOFICINABANCO", $ofibancogest, -1, OCI_B_NTY);

y $ofibancogest=ocinewcollection($ob_conn, "ARR_GESTION_CODOFICINABANCO", "CAUCION");

y el segundo arreglo

$plabancogest->append(isset($ccGESTION_CODPLAZA) ? $ccGESTION_CODPLAZA : 0);

$plabancogest->append(isset($ccGESTIONCODPLAZA) ? $ccGESTIONCODPLAZA : 0);

que este arreglo llama al procedimiento
asi

ocibindbyname($stmt, ":IN_ARR_GESTION_CODPLAZA", $plabancogest, -1, OCI_B_NTY);

$plabancogest=ocinewcollection($ob_conn, "ARR_GESTION_CODPLAZA", "CAUCION");

como ven los parametros que pasan al areglo uno por ejemplo
son diferntes pero llena el mismo campo
$ofibancogest->append(isset($ccGESTION_CODOFICINABANCO) ? $ccGESTION_CODOFICINABANCO : 0); y

$ofibancogest->append(isset($ccGESTIONCODOFICINABANCO) ? $ccGESTIONCODOFICINABANCO : 0);
ese es la situacion
muchas gracias de antemano si me pueden ayudar con este problemilla
chao
  #2 (permalink)  
Antiguo 10/03/2008, 20:53
Avatar de BrujoNic
Super Moderador
 
Fecha de Ingreso: noviembre-2001
Ubicación: Costa Rica/Nicaragua
Mensajes: 16.935
Antigüedad: 22 años, 5 meses
Puntos: 655
Re: Mensaje de error:Warning: OCI-Collection::append() expects parameter 1 to be stri

Trasladado de BD a PHP. Favor no poner código de programación en BD.

Función de la sección de Base de Datos
__________________
La tecnología está para ayudarnos. No comprendo el porqué con esa ayuda, la gente escribe TAN MAL.
NO PERDAMOS NUESTRO LINDO IDIOMA ESPAÑOL
  #3 (permalink)  
Antiguo 11/03/2008, 07:07
 
Fecha de Ingreso: enero-2008
Mensajes: 20
Antigüedad: 16 años, 3 meses
Puntos: 0
Re: Mensaje de error:Warning: OCI-Collection::append() expects parameter 1 to be stri

Hola amigos:
Nececito su ayuda porfa ya que estoy desesperado con esta cosa
De antemano muchas gracias
  #4 (permalink)  
Antiguo 11/03/2008, 09:04
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: Mensaje de error:Warning: OCI-Collection::append() expects parameter 1 to be stri

El error te lo esta diciendo, la función espera que el parámetro de append sea un string y tu le estas pasando un entero (0), para que no te marque ese error en tus isset cambia el 0 por "".

Saludos.
  #5 (permalink)  
Antiguo 11/03/2008, 10:14
 
Fecha de Ingreso: enero-2008
Mensajes: 20
Antigüedad: 16 años, 3 meses
Puntos: 0
Re: Mensaje de error:Warning: OCI-Collection::append() expects parameter 1 to be stri

disculpa compadre:
pero me sigue tirando el error y es mas cuando yo puse un mensaje de alerta que dice asi
"SOLICITUD TARJETA CREADA #:".$NROSOLICITUDCTACTE;. El NROSOLICITUDCTACTE es el numero de solicitud que se crea cuando se llena el formulario por ejemplo "SOLICITUD TARJETA CREADA #:795"
Ahora bien cuando guardo me aparece el mismo mensaje de alerta
-1001:ERROR -6533ORA-06533:Subindicemayor que el recuento.
Una pregunta puede haber dos parametros apuntando al mismo campo
o sea
$ofibancogest->append(isset($ccGESTION_CODOFICINABANCO) ? $ccGESTION_CODOFICINABANCO : 0); y

$ofibancogest->append(isset($ccGESTIONCODOFICINABANCO) ? $ccGESTIONCODOFICINABANCO : 0);

de antemano muchas gracias por la duda ya que esoy muy complicado con esta cosa
  #6 (permalink)  
Antiguo 11/03/2008, 10:30
 
Fecha de Ingreso: enero-2008
Mensajes: 20
Antigüedad: 16 años, 3 meses
Puntos: 0
Re: Mensaje de error:Warning: OCI-Collection::append() expects parameter 1 to be stri

Compadres
me faltaba cuando lo seteo me tira el valor :
Warning: OCI-Collection::append() expects parameter 1 to be string, array given in C:\AppServ\www\caucion\AccesoMenu\ing_SOL_tarjeta. php on line 394

ccGESTIONCODOFICINABANCO seteado y su valor es Array
Array ( [1] => 300 )

Osea ccGESTIONCODOFICINABANCO tiene el valor 300
eso esta bien pero el errode arriba eso es lo que me complica
el codigo seteado es el siguiente

if(isset($ccGESTION_CODOFICINABANCO) and $ccGESTION_CODOFICINABANCO!="" ){
//echo "<br>GESTION_CODOFICINABANCO seteado y su valor es $ccGESTION_CODOFICINABANCO<br>";
$ofibancogest->append(isset($ccGESTION_CODOFICINABANCO) ? $ccGESTION_CODOFICINABANCO : 0);
}else if(isset($ccGESTIONCODOFICINABANCO) and $ccGESTIONCODOFICINABANCO!="" ){


$ofibancogest->append(isset($ccGESTIONCODOFICINABANCO) ? $ccGESTIONCODOFICINABANCO : "");
echo "<br>ccGESTIONCODOFICINABANCO seteado y su valor es $ccGESTIONCODOFICINABANCO <br>";
print_r($ccGESTIONCODOFICINABANCO);
exit();
}

como se ve al final utilice un print_r para saber si venia con valor y en realidad viene con un valor pero cuando pasa por
$ofibancogest->append(isset($ccGESTIONCODOFICINABANCO) ? $ccGESTIONCODOFICINABANCO : "");

es hay donde la cosa no graba
aunque ponga con 0
$ofibancogest->append(isset($ccGESTIONCODOFICINABANCO) ? $ccGESTIONCODOFICINABANCO : 0);

o con comillas

$ofibancogest->append(isset($ccGESTIONCODOFICINABANCO) ? $ccGESTIONCODOFICINABANCO : "");

gracias
  #7 (permalink)  
Antiguo 11/03/2008, 10:33
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: Mensaje de error:Warning: OCI-Collection::append() expects parameter 1 to be stri

Lo que pasa es que tienes un arreglo, es decir tienes que accesar a su valor así: $ccGESTIONCODOFICINABANCO[0];

Saludos.
  #8 (permalink)  
Antiguo 11/03/2008, 11:03
 
Fecha de Ingreso: enero-2008
Mensajes: 20
Antigüedad: 16 años, 3 meses
Puntos: 0
Re: Mensaje de error:Warning: OCI-Collection::append() expects parameter 1 to be stri

Compadre ahora no me tira el error se le agradece pero ahora hay un pequeño problema cuando se aprieta el boton guardar(te acuerdas que existia un mensaje que decia
"SOLICITUD TARJETA CREADA #:795"
y que no aparecia es mensaje sino que -1001:ERROR -6533ORA-06533:Subindicemayor que el recuento.
Ahora bien aparece
-1001:ERROR -2291 ORA -02291:RESTRINCION DE INTEGRIDAD VIOLADA -CLAVE PRINCIPAL NO ENCONTRADA
ya que cuando grabo cuando elijo no y es mas recien cree un solicitud "SOLICITUD TARJETA CREADA #:603" pero cuando eljo si aprece el error que detalle anteriormente
porque pasa esto
gracias
  #9 (permalink)  
Antiguo 11/03/2008, 11:32
 
Fecha de Ingreso: enero-2008
Mensajes: 20
Antigüedad: 16 años, 3 meses
Puntos: 0
Re: Mensaje de error:Warning: OCI-Collection::append() expects parameter 1 to be stri

Compadre
una consulta porque en el no
$ofibancogest->append(isset($ccGESTION_CODOFICINABANCO) ? $ccGESTION_CODOFICINABANCO : 0);

no esta definido como me dijiste en el si

$ofibancogest->append(isset($ccGESTIONCODOFICINABANCO) ? $ccGESTIONCODOFICINABANCO[0] : "");

y no tengo ninigun problema ni es necesario poner
$ofibancogest->append(isset($ccGESTION_CODOFICINABANCO) ? $ccGESTION_CODOFICINABANCO[0] : "");

porque existe esa diferencia
como te conte no me tira el mensaje de warnig pero sigo con lo que conte en el mensaje anterior
si fuera tan amable de explicarme
gracias
  #10 (permalink)  
Antiguo 11/03/2008, 11:39
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: Mensaje de error:Warning: OCI-Collection::append() expects parameter 1 to be stri

El error de integridad es porque estas tratando de actualizar un campo, que es una clave foránea en otra tabla, y esto no lo puedes hacer ya que la clave foránea no se puede modificar sin dar de baja la clave en la otra tabla.

Otra opción es modificar los parámetros de Oracle para que no haga chequeo de claves foráneas, pero no veo el caso de hacerlo así ya que es tu trabajo como programador el evitar errores de integridad referencial.

Saludos.
  #11 (permalink)  
Antiguo 11/03/2008, 11:40
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: Mensaje de error:Warning: OCI-Collection::append() expects parameter 1 to be stri

Hazlo así mejor para que sea mas claro:
Código PHP:
$codigo "";
if( isset( 
$ccGESTION_CODOFICINABANCO[0] ) ) {
      
$codigo $ccGESTION_CODOFICINABANCO[0];
}
$ofibancogest->append($codigo); 
Saludos.
  #12 (permalink)  
Antiguo 11/03/2008, 11:41
 
Fecha de Ingreso: enero-2008
Mensajes: 20
Antigüedad: 16 años, 3 meses
Puntos: 0
Re: Mensaje de error:Warning: OCI-Collection::append() expects parameter 1 to be stri

tu me estas diciendo que algo que esta en el procedimiento no esta funcionando?????
gracias
  #13 (permalink)  
Antiguo 11/03/2008, 11:49
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: Mensaje de error:Warning: OCI-Collection::append() expects parameter 1 to be stri

Sin saber el diseño de tu tabla, ni de tu aplicación solo puedo interpretar el mensaje de error que Oracle te da, y es que en algún punto de tu procedimiento estas tratando de actualizar un campo que es una llave foránea, lo que ocasiona un problema de integridad, ya que si cambias ese dato, los datos "hijos" perderían la "conexión" con el dato "padre".

Saludos.
  #14 (permalink)  
Antiguo 12/03/2008, 17:38
 
Fecha de Ingreso: enero-2008
Mensajes: 20
Antigüedad: 16 años, 3 meses
Puntos: 0
Re: Mensaje de error:Warning: OCI-Collection::append() expects parameter 1 to be stri

Compadre soy de nuevo yo
He intentado por todos los medios de resolver esto, ahora bien no es cosa de actualizar un campo sino como puede tomar
$ofibancogest dos varibles a la vez e identificarlas en forma distinta
o sea

que ccGESTION_CODOFICINABANCO venga con un valor y que lo guarde

$ofibancogest->append(isset($ccGESTION_CODOFICINABANCO) ? $ccGESTION_CODOFICINABANCO [0]: "");

y que ccGESTIONCODOFICINABANCO venga con un valor y que lo guarde

$ofibancogest->append(isset($ccGESTIONCODOFICINABANCO) ? $ccGESTIONCODOFICINABANCO [0]: "");

se puede ver que la dos varibles o arreglos apuntan a $ofibancogest
donde $ofibancogest tiene comunicacion con el procedimiento
¿¿¿¿¿¿¿¿¿¿¿¿¿se entiende o no???????????????
de antemano muchas gracias , ya que esta cosa me tiene muy complicado
atte
Bruno 666
  #15 (permalink)  
Antiguo 12/03/2008, 18:06
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: Mensaje de error:Warning: OCI-Collection::append() expects parameter 1 to be stri

No entiendo realmente lo que estas tratando de explicar.

Saludos.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:38.