Resultados 1 al 4 de 4

Tema: Guardar en Mysql cadena de texto con ' a través de PHP



  1. #1
    Chapuzillas Junior
    Fecha de ingreso
    08 feb, 18
    Mensajes
    5
    Agradecido: 0

    Guardar en Mysql cadena de texto con ' a través de PHP

    Buenas tardes,

    Tengo el siguiente código en php para guardar un comentario de texto:

    Código PHP:
        $coment $_POST['coment'];    $id_vap $_GET['id'];    $id_usu $_SESSION['id'];    $data_mod '0000-00-00 00:00:00';

            
    $insertar_com "INSERT INTO comentarios(comentario, id_vap, id_usu, data, data_mod) VALUES ('$coment', '$id_vap', '$id_usu', NOW(), '$data_mod')"
    A continuación hay las líneas de texto para conectarse a la base de datos e insertar la fila.

    El código me funciona bien siempre y cuando el texto no contenga ningún carácter ', ya que supongo que interfiere con las comillas de '$coment'

    Alguien me podría ayudar a solucionar éste problema?

    Muchas gracias de antemano,

    Un saludo!

  2. #2
    Chapuzillas del montón Avatar de Moebius
    Fecha de ingreso
    11 dic, 17
    Mensajes
    86
    Agradecido: 25
    Hace mucho que no toco bases de datos, pero supongo que si lo encapsulas con Comillas dobles "" dentro te entran comillas simples. Eso sí, tendrías problemas con las comillas dobles, supongo.

    Creo que lo que mejor te vendrá, creo, es la parametrización de las sentencias (prepared statement o sentencias preparadas) y así de paso te proteges un poco contra SQLInjection.

    PHP: Sentencias Preparadas - Manual

    PHP: Sentencias preparadas y procedimientos almacenados - Manual

    Inyeccion SQL - Wikipedia, la enciclopedia libre

    Ataques de inyeccion SQL: que son y como protegerse - Pressroom HostaliaPressroom Hostalia

    PHP Prepared Statements


    Yo los leería todos que nunca está de más xD
    «Vivir es morir d e s p a c i o.»

  3. #3
    Pikachu que provee energía al Chapuzas Informático Avatar de kakadeluxe
    Fecha de ingreso
    09 mar, 18
    Mensajes
    293
    Agradecido: 90
    Con esa forma de programar, siempre vas a tener problemas. Lo suyo es hacer lo que indica el compañero @Moebius

    He aquí un ejemplo
    $pdo = Database::connect();
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $sql = "INSERT INTO comentarios(comentario, id_vap, id_usu, data, data_mod) VALUES (?, ?, ?, ?, ?)";
    $q = $pdo->prepare($sql);
    $q->execute(array($coment, $id_vap, $id_usu, NOW(), $data_mod));
    Database::disconnect();

  4. #4
    Chapuzillas Junior
    Fecha de ingreso
    08 feb, 18
    Mensajes
    5
    Agradecido: 0
    Guardar en Mysql cadena de texto con ' a través de PHP Iniciado por kakadeluxe Guardar en Mysql cadena de texto con ' a través de PHP
    Con esa forma de programar, siempre vas a tener problemas. Lo suyo es hacer lo que indica el compañero @Moebius

    He aquí un ejemplo
    Hace mucho que no toco bases de datos, pero supongo que si lo encapsulas con Comillas dobles "" dentro te entran comillas simples. Eso sí, tendrías problemas con las comillas dobles, supongo.

    Creo que lo que mejor te vendrá, creo, es la parametrización de las sentencias (prepared statement o sentencias preparadas) y así de paso te proteges un poco contra SQLInjection.

    PHP: Sentencias Preparadas - Manual

    PHP: Sentencias preparadas y procedimientos almacenados - Manual

    Inyeccion SQL - Wikipedia, la enciclopedia libre

    Ataques de inyeccion SQL: que son y como protegerse - Pressroom HostaliaPressroom Hostalia

    PHP Prepared Statements


    Yo los leería todos que nunca está de más xD

    Leer mas: Guardar en Mysql cadena de texto con ' a través de PHP
    @Moebius @kakadeluxe De acuerdo, investigare un poco sobre las sentencias preparadas, muchas gracias por la información!

    Un saludo!

Etiquetas para este tema

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •