elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  Bases de Datos (Moderador: Carloswaldo)
| | | |-+  Problema rarísimo con php y base de datos
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema rarísimo con php y base de datos  (Leído 590 veces)
jamatbar

Desconectado Desconectado

Mensajes: 100


Ver Perfil
Problema rarísimo con php y base de datos
« en: 19 Noviembre 2020, 20:05 pm »

Buenas, estoy haciendo una base de datos (videojuegos) con 3 tablas (consolas, estudios y juegos), la tabla juegos tiene dos claves foráneas, una que referencia a consolas y otra a estudios.

Tengo una página en la que conecto con sql y creo las tablas con los siguientes CREATES:

Código
  1. $sql2 = "CREATE TABLE IF NOT EXISTS CONSOLAS (NOMCONSOLA VARCHAR(50), ID INT, PRIMARY KEY (NOMCONSOLA))";
  2.  

Código
  1. $sql4 = "CREATE TABLE IF NOT EXISTS ESTUDIOS (NOMESTUDIO VARCHAR(50), ID INT, PRIMARY KEY (NOMESTUDIO))";
  2.  

Código
  1. $sql6 = "CREATE TABLE IF NOT EXISTS JUEGOS ( NOMJUEGO VARCHAR(50) PRIMARY KEY, CONSOLA VARCHAR(50), "
  2.                         . "ESTUDIO VARCHAR(50), CONSTRAINT fk_nombre_consola FOREIGN KEY (consola) REFERENCES consolas "
  3.                         . "(nomconsola) ON DELETE CASCADE, CONSTRAINT fk_nombre_estudio FOREIGN KEY (estudio) REFERENCES "
  4.                         . "estudios (nomestudio) ON DELETE CASCADE)";

Pues bien, el problema viene al querer eliminar una de las tablas (que no sea la tabla juegos). Escribo la siguiente sentencia:

Código
  1. if($tablaeliminar == "estudios"){
  2.                        $sql = "ALTER TABLE JUEGOS DROP FOREIGN KEY fk_nombre_estudio; DROP TABLE IF EXISTS ESTUDIOS";
  3.                        if (mysqli_query($conexion, $sql)) {
  4.                            echo "<script>alert('Tabla estudios borrada correctamente');</script>";
  5.                            header("refresh:0; url=administrador.php");
  6.                        } else {
  7.                            echo "Error: " . $sql . "<br>" . mysqli_error($conexion);
  8.                        }
  9.                        mysqli_close($conexion);

Y al intentar ejecutarlo en la web me aparece un fallo en la sql:

Error: ALTER TABLE JUEGOS DROP FOREIGN KEY fk_nombre_estudio; DROP TABLE IF EXISTS ESTUDIOS
You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'DROP TABLE IF EXISTS ESTUDIOS' at line 1

Lo extraño viene cuando pego esa misma sql sin cambiarla en la linea de comandos de la base de datos de phpmyadmin y me borra la tabla sin problemas.

Me estoy volviendo loco para solucionarlo. ¿Alguna ayuda?

Gracias de antemano y un saludo.


En línea

jamatbar

Desconectado Desconectado

Mensajes: 100


Ver Perfil
Re: Problema rarísimo con php y base de datos
« Respuesta #1 en: 19 Noviembre 2020, 23:53 pm »

Ahora vuelvo a probar y ejecuto esto en la consola de sql:

ALTER TABLE JUEGOS DROP FOREIGN KEY FK_NOMBRE_CONSOLA

Y tampoco me hace nada,  dice que no encuentra la clave foránea. Estoy desesperado

#1091 - No puedo eliminar (DROP FOREIGN KEY) `fk_nombre_consola`. compuebe que el campo/clave existe


En línea

el-brujo
ehn
***
Desconectado Desconectado

Mensajes: 20.191


La libertad no se suplica, se conquista


Ver Perfil WWW
Re: Problema rarísimo con php y base de datos
« Respuesta #2 en: 25 Noviembre 2020, 19:14 pm »

Citar
Error: ALTER TABLE JUEGOS DROP FOREIGN KEY fk_nombre_estudio; DROP TABLE IF EXISTS ESTUDIOS
You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'DROP TABLE IF EXISTS ESTUDIOS' at line 1

Creo que falta añadirle un ;

Código:
DROP TABLE IF EXISTS ESTUDIOS;

Citar
Lo extraño viene cuando pego esa misma sql sin cambiarla en la linea de comandos de la base de datos de phpmyadmin y me borra la tabla sin problemas.

Que funcione en PHPMyAdmin no quiere decir que sea la misma sintaxis.

Lo mejor que puedes hacer es si estás en un entorno desarrollo y no de producción es  activar en PHP display errors on y mostrarlos por pantalla para ver exactamente dónde fallan las consultas SQL o si es tema de sintaxis en PHP.
En línea

Carloswaldo
Traductor
Moderador Global
***
Desconectado Desconectado

Mensajes: 4.743


Nos reservamos el derecho de ban.


Ver Perfil WWW
Re: Problema rarísimo con php y base de datos
« Respuesta #3 en: 21 Abril 2021, 21:41 pm »

Creo que el principal problema aquí es que no estás supuesto a ejecutar varias consultas en una sola llamada a mysqli_query. Prueba separando las consultas y evaluándolas una por una.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Problema al Borrar datos de la Base de Datos « 1 2 3 »
PHP
bels_mike 20 6,548 Último mensaje 31 Diciembre 2007, 18:34 pm
por Azielito
Problema rarisimo en windows 7 home premium 64 bits. (Ayuda)
Windows
Wakkita 2 4,063 Último mensaje 20 Septiembre 2010, 21:33 pm
por Randomize
Problema rarisimo en GTA IV (descargado)
Juegos y Consolas
magote 3 3,065 Último mensaje 24 Octubre 2010, 00:27 am
por Artikbot
Problema Al Mostrar Datos De Base De Datos
Java
ZedGe 2 1,744 Último mensaje 31 Julio 2012, 21:23 pm
por reylagarto19
Problema rarisimo con gnome, el texto me sale en blanco
GNU/Linux
dato000 1 1,233 Último mensaje 2 Octubre 2012, 03:01 am
por dato000
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines