Foros del Web » Programando para Internet » PHP »

Problema con INSERT

Estas en el tema de Problema con INSERT en el foro de PHP en Foros del Web. Hola a todos, tengo un problema con un insert en MySQLi. El caso es este: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código MySQL: Ver original $db -> query ( ...
  #1 (permalink)  
Antiguo 29/07/2012, 17:26
 
Fecha de Ingreso: julio-2012
Mensajes: 2
Antigüedad: 11 años, 9 meses
Puntos: 0
Problema con INSERT

Hola a todos, tengo un problema con un insert en MySQLi. El caso es este:

Código MySQL:
Ver original
  1. $db->query('INSERT INTO `urls` (who, title, desc, url, `time`, type) VALUES (\''.$pid.'\', \''.$yt->getTitle().'\', \''.mysqli_clean($yt->getDescription()).'\', \''.mysqli_clean($_POST['attach']).'\', \''.time().'\', \'2\')') or die($db->error);

Resulta que no se inserta la descripción de los videos de youtube o enlaces normales, probé escapando los datos ingresados con mysqli_real_escape_string pero sigo con el error. Por ejemplo al inserta el siguiento video:
http://www.youtube.com/watch?v=eOTbm-NvLII

Devuelve el siguiente error:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'desc, url, `time`, type) VALUES ('37', 'Nach - Efectos Vocales', 'Music video by' at line 1

Esta es una captura de mis tablas:



También probé cambiando de longtext a text pero tampoco funciona.

mi función mysqli_clean:

Código PHP:
function mysqli_clean($string){
global 
$db;
    if(
get_magic_quotes_gpc()){
        
$string stripslashes($string);
    }
    
//$string = htmlspecialchars($string);
    
return $db->real_escape_string($string);

Aunque sin ella también larga error.

Gracias de antemano por sus respuestas.
  #2 (permalink)  
Antiguo 29/07/2012, 18:08
Avatar de rodrigo791  
Fecha de Ingreso: noviembre-2009
Ubicación: Uruguay
Mensajes: 1.339
Antigüedad: 14 años, 5 meses
Puntos: 168
Respuesta: Problema con INSERT

tenes toda la consulta dentro de ' ' ( comillas simples ), proba ponerla dentro de comillas dobles " ".
Código PHP:
Ver original
  1. $db->query("INSERT INTO `urls` (who, title, desc, url, time, type) VALUES .. bla bla bla...

y saca las comillas simples de time, en la parte de las columnas
  #3 (permalink)  
Antiguo 29/07/2012, 18:16
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Problema con INSERT

El problema es que desc es una palabra reservada (para el ORDER BY), necesitas poner comillas en el valor (comillas invertidas `).

Saludos.

Etiquetas: html, insert, mysql, sql, tabla
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 17:57.