Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Error en consulta ALTER TABLE

Estas en el tema de Error en consulta ALTER TABLE en el foro de Mysql en Foros del Web. Buenas, Estoy intentando ejecutar esta consulta SQL desde PHP con la función mysql_query : Código PHP: ALTER TABLE usuarios ADD sTelefono  varchar ( 256 )  COLLATE utf8_unicode_ci   default  '976'   COMMENT  '#Telefono'  ...
  #1 (permalink)  
Antiguo 06/07/2012, 04:19
 
Fecha de Ingreso: enero-2009
Ubicación: acer aspire 5930g
Mensajes: 46
Antigüedad: 15 años, 3 meses
Puntos: 1
Error en consulta ALTER TABLE

Buenas,

Estoy intentando ejecutar esta consulta SQL desde PHP con la función mysql_query:

Código PHP:
ALTER TABLE usuarios ADD sTelefono  varchar(256COLLATE utf8_unicode_ci  default '976'  COMMENT '#Telefono' AFTER iPrecioALTER TABLE usuarios ADD sFax  varchar(256COLLATE utf8_unicode_ci  default NULL  COMMENT '#Fax' AFTER sTelefonoALTER TABLE usuarios ADD iOrden  int(11)  default NULL  COMMENT '#Orden' AFTER sDescripcion
El caso es que desde la pestaña SQL del phpMyAdmin he probado a ejecutarla y no hay ningún problema pero desde PHP me aparece 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 'ALTER TABLE usuarios ADD sFax varchar(256) COLLATE utf8_unicode_ci default NUL' at line 1

¿Alguien sabría decirme que es lo que estoy haciendo mal?
  #2 (permalink)  
Antiguo 06/07/2012, 06:56
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Error en consulta ALTER TABLE

Si funciona en phpmyadmin es que no tienen ningun problema como querys... luego el error lo tienes en como las mandas desde php, pero no nos lo muestras ni este es el lugar adecuado para hacerlo. Este no es el foro de php si no de MySql y ya hemos llegado a la conclusión que no tienes error de Sql....

Ahora bien fijate bien en el plural que he usado al hablar de lo que tu llamas consulta (en singular)....

En el manual de php dice muy claro que mysql_query ejecuta una sola consulta!!!!

En la pestaña de SQL de phpmyadmin puedes poner tantas consultas como quieras una detras de la otra.... y las ejecutará seguidas.

Finalmente como debes o deberias saber una consulta se cierra con ; .... luego tu mismo saca conclusiones.
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #3 (permalink)  
Antiguo 06/07/2012, 07:29
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Error en consulta ALTER TABLE

Como dice quimfv, parece que es un problema de programación, más que de MySQL.
Tengo cierta sospecha: Fíjate que estás mandando dos ALTER TABLE consecutivos en un sólo string.
No estoy seguro de que el mysql_query soporte multiconsultas, pero en cualquier caso, es una pregunta que te pueden responder mejor en el Foro de PHP (usar MySQL no obliga a usar PHP, puedes usar cualquier otra cosa o nada).
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #4 (permalink)  
Antiguo 06/07/2012, 10:23
 
Fecha de Ingreso: enero-2009
Ubicación: acer aspire 5930g
Mensajes: 46
Antigüedad: 15 años, 3 meses
Puntos: 1
Respuesta: Error en consulta ALTER TABLE

Muchas gracias gente, tras seguir investigando parece que van por ahi los tiros.

¿Hay algún administrador que fuera tan amable que me pueda mover el post al foro de PHP?
  #5 (permalink)  
Antiguo 06/07/2012, 11:39
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Error en consulta ALTER TABLE

Que no hace falta, separa las querys una por una!!!

No puedes hacer esto

mysql_query("ALTER TABLE usuarios ADD sTelefono varchar(256) COLLATE utf8_unicode_ci default '976' COMMENT '#Telefono' AFTER iPrecio; ALTER TABLE usuarios ADD sFax varchar(256) COLLATE utf8_unicode_ci default NULL COMMENT '#Fax' AFTER sTelefono; ALTER TABLE usuarios ADD iOrden int(11) default NULL COMMENT '#Orden' AFTER sDescripcion;");

pero esto si

mysql_query("ALTER TABLE usuarios ADD sTelefono varchar(256) COLLATE utf8_unicode_ci default '976' COMMENT '#Telefono' AFTER iPrecio;");

mysql_query("ALTER TABLE usuarios ADD sFax varchar(256) COLLATE utf8_unicode_ci default NULL COMMENT '#Fax' AFTER sTelefono;");

mysql_query("ALTER TABLE usuarios ADD iOrden int(11) default NULL COMMENT '#Orden' AFTER sDescripcion;");

Aun que modificar por php la estructura de la bbdd no tiene mucho sentido excepto que estes de sarrollando un phpmyadmin propio. Pero esto es un comentario a parte de tu duda.
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Etiquetas: php, sql, table, alterar
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 01:41.