Foros del Web » Programando para Internet » PHP »

Problema con $stmt->execute() y signos <>

Estas en el tema de Problema con $stmt->execute() y signos <> en el foro de PHP en Foros del Web. Hola a todos, estoy haciendo una web y para comodidad mia (y creo que es lo mas idoneo) he echo un unico script para consultas ...
  #1 (permalink)  
Antiguo 18/05/2016, 09:33
 
Fecha de Ingreso: julio-2014
Mensajes: 115
Antigüedad: 10 años, 4 meses
Puntos: 1
Problema con $stmt->execute() y signos <>

Hola a todos, estoy haciendo una web y para comodidad mia (y creo que es lo mas idoneo) he echo un unico script para consultas a la bbdd. Bueno el problema es que cuando un usuario escribe en un campo una frase por ejemplo: "Hola q<ue tal" ingresa eso en la bbdd pero a la hora de recuperar solo se puede visualizar "Hola q"

Os agradecería si pudierais echarme un cable.

Saludos.
Código:
		$stmt = $SQL_datos_conexion->prepare($consulta);

		$SQL_datos_conexion->set_charset('utf8');

			if($datos!=false){
				if(is_array($datos)){
					//Saber si es string o numerico(int)
					$type = '';
					foreach ($datos as $value) {
						$type .= is_numeric($value) ? 'i' : 's';
					}

					//Solo funciona con arrays
					$stmt->bind_param($type, ...$datos);
				}else{
					$stmt->bind_param('s', $datos);
				}
			}

			$stmt->execute();

//Mas codigo...

//Mostrar datos
                                       if($mostrar_datos_numero==1){
						$stmt->bind_result($mostrar_info);
					}elseif($mostrar_datos_numero==2){
						$stmt->bind_result($mostrar_info[0], $mostrar_info[1]);
					}
  #2 (permalink)  
Antiguo 18/05/2016, 09:36
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 8 meses
Puntos: 2534
Respuesta: Problema con $stmt->execute() y signos <>

Cita:
pero a la hora de recuperar solo se puede visualizar "Hola q"
Pues el problema no es la consulta como te imaginas.

El detalle es cuando imprimes dicho dato, porque <> son caracteres especiales de HTML y no los puedes imprimir sin causar efectos secundarios.

Necesitas usar la función htmlspecialchars() para mitigar ese detalle a la hora de imprimir el datos, consulta el manual.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 18/05/2016, 10:12
 
Fecha de Ingreso: julio-2014
Mensajes: 115
Antigüedad: 10 años, 4 meses
Puntos: 1
Respuesta: Problema con $stmt->execute() y signos <>

Cita:
Iniciado por pateketrueke Ver Mensaje
Pues el problema no es la consulta como te imaginas.

El detalle es cuando imprimes dicho dato, porque <> son caracteres especiales de HTML y no los puedes imprimir sin causar efectos secundarios.

Necesitas usar la función htmlspecialchars() para mitigar ese detalle a la hora de imprimir el datos, consulta el manual.
Vaya menudo rollo, me suena esto creo que tube un problema similar hace un tiempo. Muchas gracias por tu ayuda.
  #4 (permalink)  
Antiguo 18/05/2016, 13:05
 
Fecha de Ingreso: julio-2014
Mensajes: 115
Antigüedad: 10 años, 4 meses
Puntos: 1
Respuesta: Problema con $stmt->execute() y signos <>

Cita:
Iniciado por pateketrueke Ver Mensaje
Pues el problema no es la consulta como te imaginas.

El detalle es cuando imprimes dicho dato, porque <> son caracteres especiales de HTML y no los puedes imprimir sin causar efectos secundarios.

Necesitas usar la función htmlspecialchars() para mitigar ese detalle a la hora de imprimir el datos, consulta el manual.
Me acaba de surgir una duda. Yo utilizo bind param y execute eso no escapa los caracteres especiales? Saludos
  #5 (permalink)  
Antiguo 18/05/2016, 14:51
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 8 meses
Puntos: 2534
Respuesta: Problema con $stmt->execute() y signos <>

Por favor, no repitas la misma pregunta en un tema nuevo, te estás confundiendo y no resuelves nada, sólo abres un nuevo tema para seguir confundiéndote mas: y a nadie le servirá eso.

Repetido: http://www.forosdelweb.com/f18/duda-...4/#post4794285

Voy a dar por "solucionado" el otro tema que abriste porque no existe ningún problema ahí.

Cita:
Me acaba de surgir una duda. Yo utilizo bind param y execute eso no escapa los caracteres especiales? Saludos
Sí, eso escapa caracteres especiales para SQL, pero tu problema es de HTML y no de SQL.

El HTML no hace daño en la base de datos, ese no es el problema.

El problema es al momento de imprimir el HTML.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #6 (permalink)  
Antiguo 19/05/2016, 06:38
 
Fecha de Ingreso: julio-2014
Mensajes: 115
Antigüedad: 10 años, 4 meses
Puntos: 1
Respuesta: Problema con $stmt->execute() y signos <>

Cita:
Iniciado por pateketrueke Ver Mensaje
Por favor, no repitas la misma pregunta en un tema nuevo, te estás confundiendo y no resuelves nada, sólo abres un nuevo tema para seguir confundiéndote mas: y a nadie le servirá eso.

Repetido: http://www.forosdelweb.com/f18/duda-...4/#post4794285

Voy a dar por "solucionado" el otro tema que abriste porque no existe ningún problema ahí.



Sí, eso escapa caracteres especiales para SQL, pero tu problema es de HTML y no de SQL.

El HTML no hace daño en la base de datos, ese no es el problema.

El problema es al momento de imprimir el HTML.
Hola, es cierto no me di cuenta escapa caracteres para SQL.
Crei que debia abrir otro hilo porque pense que era lo mejor ya que en realidad es una consulta diferente. Mas o menos entendi lo que hace htmlspecialchars pero para que funcione con un array neceito crear un bucle y no sabia si es posible utilizar el operador splat con el ya que en una ocasion me funciono con bind_param.
Saludos

Etiquetas: signos, sql
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 02:15.