Foros del Web » Programando para Internet » PHP »

MySQL en PHP (sintaxis ?)

Estas en el tema de MySQL en PHP (sintaxis ?) en el foro de PHP en Foros del Web. Hola amigos: a ver si me ayudan que quiero insertar unos registros en una tabla (via MySQL) pero me da error : Cita: A error ...
  #1 (permalink)  
Antiguo 02/11/2007, 18:44
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 1 mes
Puntos: 292
Busqueda MySQL en PHP (sintaxis ?)

Hola amigos: a ver si me ayudan que quiero insertar unos registros en una tabla (via MySQL) pero me da error:

Cita:
A error occured: 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, categoria, categoria2, categoria3, usuario_correo, alta, calificacion, est' at line 1
El codigo en principio (ni se si usar FOR o que usar) es este:

Código PHP:
<?php
// .... 
// .... aca seteo las variables
// ....
    
$con mysql_connect("localhost",$user,$pass) or die ('Error conectando a mysql');
    
mysql_select_db("betadir") or die ('Error seleccionando base');

    
$regs=count($href);

     for (
$i 0$i $regs$i++) {
    
$sql "INSERT INTO contenido(id, anchor, url, title, desc, categoria, categoria2, categoria3, usuario_correo, alta, calificacion, estado) VALUES (null,'$anchor','$href','$desc',null,null,null,null,null,null,null,null)";
    
mysql_query($sql) or die('A error occured: ' mysql_error()); 
    }
}
?>
Con esto tambien me da el mismo error:

Código PHP:
$sql "INSERT INTO contenido(id, anchor, url, title, desc, categoria, categoria2, categoria3, usuario_correo, alta, calificacion, estado) VALUES ('$i','$anchor','$href','$desc',\'\',\'\',\'\',\'\',\'\',\'\',\'\',\'\')"
Ideas ?

ahh la ESTRUCTURA de la tabla 'contenido' es

Cita:
Campo Tipo Nulo Predeterminado
id int(11) No <<< autoincremento
anchor varchar(60) No
url varchar(80) No
title varchar(40) No
desc varchar(256) Sí NULL
categoria int(11) No
categoria2 int(11) Sí NULL
categoria3 int(11) Sí NULL
usuario_correo varchar(40) Sí NULL
alta date No 2001-01-01
calificacion smallint(6) No
estado char(1) No
  #2 (permalink)  
Antiguo 02/11/2007, 18:51
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 2 meses
Puntos: 81
Re: MySQL en PHP (sintaxis ?)

Imprime en pantalla tu variable $sql antes de enviarla y esa copia y pegala en el sql para saber que puede pasar...

Viendolo me parece que DESC es un nombre reservado y puede que se caiga por ahi.

Revisalo y danos tu resultado.

Suerte!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #3 (permalink)  
Antiguo 02/11/2007, 19:03
Avatar de Seppo  
Fecha de Ingreso: marzo-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.284
Antigüedad: 19 años, 1 mes
Puntos: 17
Re: MySQL en PHP (sintaxis ?)

Acuerdo con Marvin que seguramente le problema es que desc está reservada. Dos opciones: o renombrar el campo, o escaparlo cada vez que aparece. Para escaparlo tenés que usar el caracter `

Código PHP:
 $sql "INSERT INTO contenido(id, anchor, url, title, `desc`, categoria, categoria2, categoria3, usuario_correo, alta, calificacion, estado) VALUES ('$i','$anchor','$href','$desc',\'\',\'\',\'\',\'\',\'\',\'\',\'\',\'\')"
  #4 (permalink)  
Antiguo 02/11/2007, 19:14
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 1 mes
Puntos: 292
De acuerdo Gracias chicos!

Hola Marvin: bueno... termine renombrando DESC que ni sospechaba podia ser una palabra reservada

Seppo: excelente la idea de escaparlo

El imprimir me sirvio para ver otros erroes ahora estoy con otros problemitas pero ese esta solucionado.......asi que MUCHAS GRACIAS!
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 09:35.