Foros del Web » Programando para Internet » PHP »

ERROR: unterminated quoted string at or near

Estas en el tema de ERROR: unterminated quoted string at or near en el foro de PHP en Foros del Web. Hola a todos en foros del web Recurro a ustedes nuevamente. Estoy usando CKEditor con php y postgresql pero al intentar modificar el contenido que ...
  #1 (permalink)  
Antiguo 07/09/2011, 15:46
 
Fecha de Ingreso: septiembre-2009
Ubicación: Managua
Mensajes: 128
Antigüedad: 14 años, 7 meses
Puntos: 5
Pregunta ERROR: unterminated quoted string at or near

Hola a todos en foros del web

Recurro a ustedes nuevamente.
Estoy usando CKEditor con php y postgresql pero al intentar modificar el contenido que proviene del CKEditor me lanza los siguientes mensajes de error, de pronto me echan una manito con esto para buscar la solución. Tengo php 5.3.0 e intente usar ereg_replace pero ya esta descartada en esta versión. Es decir me guarda el registro pero luego cuando intento hacer el update me da error

Mi cadena a modificar es esta

Cita:
<p> Cinco personas fallecieron este viernes al estrellarse la avioneta en la que viajaban en el estado occidental de Cojedes. Una ni&ntilde;a result&oacute; ilesa, informaron las autoridades venezolanas.</p>

<p> El director de Protecci&oacute;n Civil del estado Cojedes, Amilcar Mercado, dijo al canal de noticias Globovisi&oacute;n que la aeronave tipo PN68 se estrell&oacute; en horas de la tarde en los linderos de una finca del municipio Lima Blanco de esa localidad.</p>

<p> Indic&oacute; que fueron hallados los cad&aacute;veres de cinco adultos, dos hombres y tres mujeres. Aparentemente todos eran miembros de una familia.</p>

<p> La &uacute;nica sobreviviente fue una ni&ntilde;a de 10 a&ntilde;os, quien result&oacute; ilesa. M&eacute;dicos de un hospital cercano, en la capital estatal de San Carlos, se&ntilde;alaron que la ni&ntilde;a se encuentra en buen estado, agreg&oacute; Mercado.</p>

<p> De acuerdo con las investigaciones iniciales, la avioneta parti&oacute; del aeropuerto Internacional Santiago Mari&ntilde;o de la isla caribe&ntilde;a de Margarita, rumbo a un aeropuerto en la localidad de los Valles del Tuy, ubicado a unos 30 kil&oacute;metros al sureste de Caracas.</p>

<p> Por causas desconocidas la aeronave no lleg&oacute; a su destino en las cercan&iacute;as de Caracas, &quot;sigui&oacute; de largo y se desvi&oacute; a Cojedes&quot;. Trabajadores de la finca reportaron el accidente, confirm&oacute; el socorrista.</p>
Los errores que me lanza al intentar modificar son estos

Cita:
Warning: pg_query() [function.pg-query]: Query failed: ERROR: unterminated quoted string at or near "'&lt;p&gt; Cinco personas fallecieron este viernes al estrellarse la avioneta en la que viajaban en el estado occidental de Cojedes. Una ni&amp;ntilde;a result&amp;oacute; ilesa WHERE idarticulo = 5" LINE 1: UPDATE articulo SET texto = '&lt;p&gt; ^ in /home/biolatin/public_html/soluciones-dinamicas.com/admin/common/db.php on line 65

Warning: pg_query() [function.pg-query]: Query failed: ERROR: syntax error at or near "las" LINE 1: UPDATE articulo SET idarticulo = informaron las autoridades... ^ in /home/biolatin/public_html/soluciones-dinamicas.com/admin/common/db.php on line 65

Warning: pg_query() [function.pg-query]: Query failed: ERROR: syntax error at or near "Mercado" LINE 1: UPDATE articulo SET idseccion = Amilcar Mercado WHERE idart... ^ in /home/biolatin/public_html/soluciones-dinamicas.com/admin/common/db.php on line 65
Mi funcion para modificar es esta

Cita:

if ($_POST) { // si he dado sumit al form
$valores = "'";
// recorro los nombres de los campos del formulario que son iguales a los de mis columnas en mi bd y los junto en cadena separados por coma, lo mismo con los valores
foreach ($_POST as $key => $value) { // recorro los campos del formulario
$campos .= $key . ','; // tomo los nombres de los campos
$valores .= $value . "','"; // su correspondientes valores
}

// Elimino las comas extras que quedan al final de cada cadena
$campos = substr($campos, 0, -1);
$valores = substr($valores, 0, -2);

if ( $modificar===false ){ // aqui valido si es un registro modificado, en caso de ser falso lo mando a insertar
addRegister('articulo', $campos, $valores);
echo "Articulo agregado - <a href='edit-articulo.php'>&Aacute;rticulos</a>";
} else { // en caso contrario lo mando a modificar
// Hago la llamada a la funcion que modifica el registro y hago una redireccion a otra pagina con el header
updateRegister('articulo', $campos, $valores, $_REQUEST['idarticulo']);
header("Location: edit-articulo.php");
}
}


function updateRegister ($table, $fields, $values, $id) {
$odbc = connect();
$array_fields = explode(",", $fields); // creo un array de valores y campos
$array_values = explode(",", $values);

// Actualizo cada registro individualmente segun el indice del arreglo
for ($i=0; $i < count($array_fields); $i++) {
$result = pg_query("UPDATE $table SET $array_fields[$i] = $array_values[$i] WHERE id" . $table . " = " . $id);
}
if (!$result) {
echo 'Hubo un error';
exit();
}
}
Espero su valiosa ayuda, me urge
  #2 (permalink)  
Antiguo 07/09/2011, 16:01
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: ERROR: unterminated quoted string at or near

No sé como se están generando esos 2 arrays, pero el error lo que dice es que tienes error de sintaxis en la consulta y puede ser porque no le estás agregando las comillas a los valores. Si son cadenas coloca comillas sencillas.

Prueba así a ver que más errores vas encontrando:

Código PHP:
Ver original
  1. $result = pg_query("UPDATE $table SET $array_fields[$i] = '$array_values[$i]' WHERE id" . $table . " = " . $id);

Imprime también esta línea a ver si está funcionando todo

Código PHP:
Ver original
  1. updateRegister('articulo', $campos, $valores, $_REQUEST['idarticulo']);

me refiero a $_REQUEST['idarticulo']
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #3 (permalink)  
Antiguo 07/09/2011, 16:21
 
Fecha de Ingreso: septiembre-2009
Ubicación: Managua
Mensajes: 128
Antigüedad: 14 años, 7 meses
Puntos: 5
Respuesta: ERROR: unterminated quoted string at or near

Hola Andres

Cita:
No sé como se están generando esos 2 arrays, pero el error lo que dice es que tienes error de sintaxis en la consulta y puede ser porque no le estás agregando las comillas a los valores. Si son cadenas coloca comillas sencillas.
Los arrays los genero de los nombres de los campos del form que como mencione corresponden a los de las campos en mi tabla

Código PHP:
$array_fields[$i// lo genero de aqui

foreach ($_POST as $key => $value) {
        
$campos  .= $key ',';
        
$valores .= $value "','";

luego en la llamada a la funcion updateRegister le paso esas cadenas

Código PHP:
updateRegister('articulo'$campos$valores$_REQUEST['idarticulo']); 
Finalmente las cadenas las convierto en esos dos array que decis en la funcion

Código PHP:
function updateRegister ($table$fields$values$id) {
    
$odbc connect();
    
$array_fields explode(","$fields); // AQUI CONVIERTO LAS CADENAS EN ARRAY
    
$array_values explode(","$values);

    for (
$i=0$i count($array_fields); $i++) {
        
$result pg_query("UPDATE $table SET $array_fields[$i] = $array_values[$i] WHERE id" $table " = " $id);
    }
    if (!
$result) {
        echo 
'Hubo un error';
        exit();
    }

con lo de las comillas ya las coloco al momento de crear las cadenas que convierto a array.

Código PHP:
// Justamente aca
$valores "'";
    foreach (
$_POST as $key => $value) {
        
$campos  .= $key ',';
        
$valores .= $value "','";
    } 
Gracias, Alguna otra sugerencia?
  #4 (permalink)  
Antiguo 07/09/2011, 16:25
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: ERROR: unterminated quoted string at or near

Código PHP:
Ver original
  1. // Justamente aca
  2. $valores = "'";
  3.     foreach ($_POST as $key => $value) {
  4.         $campos  .= $key . ',';
  5.         $valores .= $value . "','";
  6.     }

y donde cierra la comilla? ami me parece el que error viene de ahí. Al final terminaría un valor con ,'
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #5 (permalink)  
Antiguo 07/09/2011, 16:33
 
Fecha de Ingreso: septiembre-2009
Ubicación: Managua
Mensajes: 128
Antigüedad: 14 años, 7 meses
Puntos: 5
Respuesta: ERROR: unterminated quoted string at or near

Cita:
y donde cierra la comilla? ami me parece el que error viene de ahí. Al final terminaría un valor con ,'
Aqui amigo con el substr, esta en el post original

Código PHP:
$valores "'";
    foreach (
$_POST as $key => $value) {
        
$campos  .= $key ',';
        
$valores .= $value "','";
    }

   
$campos  substr($campos0, -1);
   
$valores substr($valores0, -2); 
Saludos amigo

Última edición por equality_211085; 07/09/2011 a las 16:34 Razón: error al colocar negrita en codigo php
  #6 (permalink)  
Antiguo 07/09/2011, 16:48
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: ERROR: unterminated quoted string at or near

Revisa primero todo ese array, imprimelos a ver que traen. Todos los errores los está marcando con los punto y coma

agreg&oacute; Mercado.

SET texto = '&lt;p&gt; ^

Lee sobre esta función:

http://php.net/manual/es/function.pg-escape-string.php
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP

Última edición por andresdzphp; 07/09/2011 a las 16:56

Etiquetas: html, registro, sql, string, formulario
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 10:47.