image
Inicio » Foros » PHP

Foro sobre PHP

Problema oci_execute con acentos

Volver al foro | Responder | Añadir nuevo tema


De: Xavi
Fecha: 20/10/2009
Mensaje:

Hola y antes de nada gracias,

Trabajo con PHP - oci8 - Oracle 8

En una tabla uno de los campos tiene un "acento" (F_GRABACIÓN).

He intentado cambiar el carácter con ASCII, modificar Charset, introducir caracteres especiales tales como ?,%,*, intentar hacer por id interno de Oracle, y nada.

También he probado diferentes opciones de oci_parse, y siempre lo mismo "Carácter no valido", en la línea de ejecución oci_execute.

Alguien me puede ayudar INSERT's, UPDATE'S etc con el campo con acento?

Gracias


Quizás le interese
De: SKRX
Util para: 2 personas

Fecha: 22/10/2009
Mensaje:

Yo he tenido 2 veces esta bronca, y en cada ocacion se solucion de diferente forma
porque, la verdad no se

1 usar oci_connect($user, $password, $base, 'ISO-8859-1')

2 usar ini_set('default_charset', 'ISO-8859-1');

Siento no poder ser mas especico, pero ayudaria saber el numero de error que te da oracle y no solo el mensaje



De: Xavi
Util para: 0 personas

Fecha: 23/10/2009
Mensaje:

Gracias SKRX

He probado lo que me has dicho:
oci_connect($user, $password, $base, 'ISO-8859-1'), me ha error:
Warning: oci_connect() [function.oci-connect]: Invalid character set name: ISO-8859-1 in

y ini_set, no hace ni caso

Esto es lo que estoy probando, como me has pedido más info, espero que esto te de más pistas, yo sigo en ello.

Si me refiero a un acento en el nombre del campo de la tabla:
-->
$sqlInsert = "INSERT INTO PERFIL (CODIGO,NOMBRE,F_GRABACIÓN) VALUES ('TEST','TEST2','FECHA')";

<<FECHA: es VARCHAR2, no es un dato Date>>

$sqlInsert = oci_parse($con, $sqlInsert);

oci_execute($sqlInsert, OCI_DEFAULT)
<---

Respuesta por el navegador:

Warning: oci_execute() [function.oci-execute]: ORA-00911: caracter no valido in .....

Cuando se ejecuta el oci_execute me da el error que habeis visto, y lo da en la linea de oci_execute.

Gracias por todo.



De: SKRX
Util para: 1 personas

Fecha: 23/10/2009
Mensaje:

Hola Xavi

1 Si tienes oportunidad de modificar la tabla, Just do It no lo dudes, por best practise no se deben usa caracteres especiales en el nombre de la tabla y de preferencia se deben poner en ingles, dado que es el lenguaje estandar de los lenguajes de programacion

2 Eso se corrige poniendo el nombre del campo entre comillas dobles con, no puedo poner el cod, pero la sentencia deberia quedar asi

INSERT INTO PERFIL ("CODIGO","NOMBRE","F_GRABACIÓN") VALUES ('TEST','TEST2','FECHA');




De: Ronald
Util para: 0 personas

Fecha: 28/12/2016
Mensaje:

Aún que este post es antiguo, quiero dar la solución que encontré

Solución

1.- En el string de conexión
$c = oci_connect("mi_usuario", "mi_contraseña",
"mi_host.dom.com:1521/sales:POOLED","AL32UTF8" );

2.- En la consulta
$mSQL = "SELECT * FROM AUTO WHERE \"CÓDIGO AUTO\" LIKE '%2%'";



De: 4xDjr29WkAQ
Util para: 0 personas

Fecha: 11/03/2017
Mensaje:

Andrea Mollica &middot; mercoledì, 12 dicembre 2012, 4:17 pmNon capisco il problema, notizie dal contenuto simili non vanno scartate a prernicdese. Mia personale opinione, altrimenti nessun media europeo dovrebbe mai relazionare sulla crisi dei debiti sovrani



Volver al foro | Responder | Añadir nuevo tema

Quizás le interese:

WebEstilo.com no se hace responsable de las opiniones que los usuarios puedan verter en cualquiera de los foros existentes.

Si te solucionó el problema pulsa en G+1


Gracias!






Comparte



Última modificación:31 de Agosto de 2017. Spain - Espa�a.
© 1998-2004 por . Todos los derechos reservados.