Foros del Web » Programando para Internet » PHP »

PHP OO Comillas con barra en base de datos

Estas en el tema de Comillas con barra en base de datos en el foro de PHP en Foros del Web. Tengo un problema con las comillas al entrar en la tabla de la base de datos. Las inserta con una barra delante, es decir, si ...
  #1 (permalink)  
Antiguo 29/11/2010, 10:44
 
Fecha de Ingreso: octubre-2008
Ubicación: Andalucia
Mensajes: 23
Antigüedad: 11 años, 3 meses
Puntos: 0
Comillas con barra en base de datos

Tengo un problema con las comillas al entrar en la tabla de la base de datos. Las inserta con una barra delante, es decir, si yo introduzco en la bd un texto que lleve:

Hola "que tal" ----------------> me lo inesrtaria en bd como: hola /"que tal/".

Os explico un poco como tengo hechas las clases. Tengo una clase principal de la que heredan los demás objetos y en la que están todos los métodos, por lo tanto cuando quiero hacer una nueva clase lo único que tengo que hacer es hacer que herede de esta y sólo 2 métodos, uno que dice la tabla de la bd y otro la relación entre los atributos y el nombre de los campos en la bd. La verdad ahorra mucho trabajo. Os pongo el metodo que inserta y actualiza en bd a ver si veis el problema:

Código PHP:
public function Save() {
      if (isset(
$this->ID)) {
         
$strQuery 'UPDATE ' $this->strTableName ' SET ';
                        foreach (
$this->arRelationMap as $key => $value) {
                                eval(
'$actualVal = &$this->' $value ';');
            if (
array_key_exists($value$this->arModifiedRelations)) {
                                  
$strQuery .=  $key " = :$value, ";
            };
                        }
         
$strQuery substr($strQuery0strlen($strQuery)-2);
         
$strQuery .= ' WHERE id = :eid';
         unset(
$objStatement);
                        
$objStatement $this->objPDO->prepare($strQuery);
         
$objStatement->bindValue(':eid'$this->IDPDO::PARAM_INT);
                        foreach (
$this->arRelationMap as $key => $value) {
                                 eval(
'$actualVal = &$this->' $value ';');
               if (
array_key_exists($value$this->arModifiedRelations)) {
                  if ((
is_int($actualVal)) || ($actualVal == NULL)) {
                     
$objStatement->bindValue(':' $value$actualVal,
                                              
PDO::PARAM_INT);
                  } else {
                     
$objStatement->bindValue(':' $value$actualVal,
                                              
PDO::PARAM_STR);
                  };
               };
                        };
         
$objStatement->execute();
      } else {
         
$strValueList "";
         
$strQuery 'INSERT INTO ' $this->strTableName '(';
         foreach (
$this->arRelationMap as $key => $value) {
                                eval(
'$actualVal = &$this->' $value ';');
            if (isset(
$actualVal)) {
               if (
array_key_exists($value$this->arModifiedRelations)) {
                  
$strQuery .=  $key ', ';
                  
$strValueList .= ":$value, ";
               };
            };
                        }
         
$strQuery substr($strQuery0strlen($strQuery) - 2);
         
$strValueList substr($strValueList0strlen($strValueList) - 2);
         
$strQuery .= ") VALUES (";
         
$strQuery .= $strValueList;
         
$strQuery .= ")";

         unset(
$objStatement);
         
$objStatement $this->objPDO->prepare($strQuery);
                        foreach (
$this->arRelationMap as $key => $value) {
                                eval(
'$actualVal = &$this->' $value ';');
                                if (isset(
$actualVal)) {   
               if (
array_key_exists($value$this->arModifiedRelations)) {
                  if ((
is_int($actualVal)) || ($actualVal == NULL)) {
                       
$objStatement->bindValue(':' $value$actualValPDO::PARAM_INT);
                  } else {
                       
$objStatement->bindValue(':' $value$actualValPDO::PARAM_STR);
                  }
               }
                                }
                        }
         
$objStatement->execute();
         
$this->ID $this->objPDO->lastInsertId($this->strTableName "_id_seq");
      }
   } 

Alguien me puede decir que puedo hacer para solucionarlo. Si quieren comprobar como ocurre el fallo metanse en www.diacarmona.es y lo podrán ver en cualquier titulo de noticia o comentario, y la verdad que es bastante feo a la vista.
  #2 (permalink)  
Antiguo 29/11/2010, 11:21
Avatar de santris  
Fecha de Ingreso: agosto-2009
Ubicación: Sant Feliu de Llobregat
Mensajes: 955
Antigüedad: 10 años, 6 meses
Puntos: 66
Respuesta: Comillas con barra en base de datos

Mira este enlace,

http://php.net/manual/es/function.addslashes.php

Saludos,
__________________
Tu álbum de cromos online!!
  #3 (permalink)  
Antiguo 30/11/2010, 12:01
 
Fecha de Ingreso: octubre-2008
Ubicación: Andalucia
Mensajes: 23
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: Comillas con barra en base de datos

Muxas gracias lo he solucionado con
Cita:
stripslashes()

Etiquetas: barra, comillas
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 14:09.