Foros del Web » Programando para Internet » PHP »

Urgente!!! Error al realizar consulta a BD

Estas en el tema de Urgente!!! Error al realizar consulta a BD en el foro de PHP en Foros del Web. Hola a todos. Estoy realizando un script que me permita la restauración de una copia de seguridad a partir de un fichero .SQL previamente creado. ...
  #1 (permalink)  
Antiguo 30/06/2002, 06:03
 
Fecha de Ingreso: mayo-2002
Mensajes: 41
Antigüedad: 21 años, 10 meses
Puntos: 0
Urgente!!! Error al realizar consulta a BD

Hola a todos.

Estoy realizando un script que me permita la restauración de una copia de seguridad a partir de un fichero .SQL previamente creado.

En el script el usuario simplemente tiene que hacer un copy/paste del fichero .SQL que se creó previamente.

Posteriormente, se ejecutará la consulta para hacer el restore.

El fichero .sql esta creado bien ya que se comprobó con la instrucción:

mysql < copia.sql

y funciona perfectamente.

El código del script RESTORE es:

<?
$db_conexion= mysql_connect("$localhost", "", "")
or die("No se pudo conectar a la Base de datos") or die(mysql_error());

mysql_select_db("hamelin") or die ("nada de nada") or die(mysql_error());

if(!isset($HTTP_GET_VARS['accion']))
{
echo"
<form method='post' action='$PHP_SELF?accion=restore'>
<table width='399' border='1' cellspacing='0' cellpadding='4' align='center'>
<tr>
<td colspan='2' height='30' bgcolor='#0099FF'>
<div align='center'><b><font face='Verdana, Arial, Helvetica, sans-serif' size='2' color='#FFFFFF'>.:
Restaurar copia de seguridad :.</font></b></div>
</td>
</tr>
<tr bgcolor='#FFFFCC'>
<td width='185'>
<div align='right'><font face='Verdana, Arial, Helvetica, sans-serif' size='2'>
Introduzca contenido : </font></div>
</td>
<td width='192'><TEXTAREA COLS=20 ROWS=10 NAME='consulta'> </TEXTAREA>
</td>
</tr>
<tr bgcolor='#FFFFCC'>
<td colspan='2' height='40'>
<div align='center'>
<input type='submit' name='Submit' value=' Hacer backup ' class='botones' >
</div>
</td>
</tr>
</table>
</form>

";
}

if ($HTTP_GET_VARS['accion']=="restore")
{
$consulta=$HTTP_POST_VARS['consulta'];
$hola=mysql_query("$consulta") or die ("No se pudo hacer el backup");
}
?>


El fallo que da es: "No se puedo hacer el backup"

Necesitaría algún consejo ya que urge mucho el tema
  #2 (permalink)  
Antiguo 30/06/2002, 10:18
Avatar de gomo  
Fecha de Ingreso: mayo-2002
Ubicación: [email protected]
Mensajes: 906
Antigüedad: 21 años, 11 meses
Puntos: 0
Re: Urgente!!! Error al realizar consulta a BD

Que tal redprive??
Bueno el problema seguramente esta en algun lugar de tu consulta SQL...
Proba de sacar el error con mysql_error para ver que te dice...
Sino hay un programa muy bueno que se llama MySQLFront que seria un PHPMyAdmin solo que en C++, y que se conecta directo a la BD... Ese programa "interpreta" los errores...
Lo que se me ocurre es que la BD devuelve error porque dejaste las tablas anteriores o la BD anterior, y cuando quiere crear las nuevas entonces sale "Database tudb already exists" o algo asi, solo que en tu script sale el mensaje de error que pusiste vos...
Cualquier cosa postea again
Saludos ;)


<div align="center"><img src="http://cablemodem.fibertel.com.ar/sainztrapaga/images/firma.jpg" width="435" height="70" border="0">
</div>
  #3 (permalink)  
Antiguo 30/06/2002, 11:32
 
Fecha de Ingreso: mayo-2002
Mensajes: 41
Antigüedad: 21 años, 10 meses
Puntos: 0
Re: Urgente!!! Error al realizar consulta a BD

Hola Gomo. Gracias por responder.

He probado a poner mysql_error y me dice:

You have an error in your SQL syntax near '; CREATE DATABASE hamelin; USE hamelin; # ---------------------------------' at line 8

Como te he comentado, este script se base en un copy/paste del fichero .sql creado previamente y que como te he comentado, con el comando mysql &lt; copia.sql lo hace perfectamente.

Te adjunto un cacho del script .sql creado previamente:
# ================================================== ======
#
# Database saved : hamelin
# On 06-30-2002 at 11:31 by !
#
# ================================================== ======

DROP DATABASE if exists hamelin;
CREATE DATABASE hamelin;
USE hamelin;

# --------------------------------------------------------
#
# Table structure for table 'agencias'
#

DROP TABLE IF EXISTS agencias;
CREATE TABLE agencias (
id_agencia int(11) NOT NULL auto_increment,
direccion varchar(50) NOT NULL,
telefono int(9) DEFAULT '0' NOT NULL,
cp int(5) DEFAULT '0' NOT NULL,
provincia varchar(20) NOT NULL,
email varchar(50) NOT NULL,
PRIMARY KEY (id_agencia)
);

#
# Dumping data for table 'agencias'
#

INSERT INTO agencias VALUES ( '1', 'Arzobispo Añoa del Busto 6-8 7ºB', '976325925', '50010', 'Zaragoza', '[email protected]');
INSERT INTO agencias VALUES ( '2', 'Avda Papa Luna Residencial Peñiscola Playa', '657059936', '10040', 'Peñíscola', '[email protected]');
INSERT INTO agencias VALUES ( '4', 'Batido de SanBuka', '111111222', '99999', 'California', '[email protected]');
INSERT INTO agencias VALUES ( '5', 'Avda de Leganes', '916844478', '28080', 'Madrid', '[email protected]');

Como podrás ver, este es el comienzo del script .sql y viene a reflejar la creación
de la base de datos previa eliminacion y la creación de la primera tabla.

Cosas que se me ocurren:

- Quitar las lineas de comentarios del script .sql
- Se puede borrar la bd si tienes una conexion activa?

AYUDA PLIS!

  #4 (permalink)  
Antiguo 30/06/2002, 15:12
Avatar de gomo  
Fecha de Ingreso: mayo-2002
Ubicación: [email protected]
Mensajes: 906
Antigüedad: 21 años, 11 meses
Puntos: 0
Re: Urgente!!! Error al realizar consulta a BD

A ver... un posible problema puede ser que estas en el momento de dropearla, conectado a esa misma base de datos... Proba de dropearla sin hacer select_db...
Lo de los comentarios no creo que sea...
O en el peor de los casos... en que servidor estas?? Te permite tener multiples bases de datos (nunca se sabe )
Saludos



<div align="center"><img src="http://cablemodem.fibertel.com.ar/sainztrapaga/images/firma.jpg" width="435" height="70" border="0">
</div>
  #5 (permalink)  
Antiguo 30/06/2002, 15:29
 
Fecha de Ingreso: mayo-2002
Mensajes: 41
Antigüedad: 21 años, 10 meses
Puntos: 0
Re: Urgente!!! Error al realizar consulta a BD

No ha habido suerte.

Ya había pensado en la posibilidad de que el error estuviera en tener conexión activa con esa base de datos con lo que he quitado la instrucción mysql_select_db pero me ha dado el mismo error:

You have an error in your SQL syntax near '; CREATE DATABASE hamelin; USE hamelin; # ---------------------------------' at line 8

Por otra parte, no tengo instalada la BD en ningún servidor. Estoy realizando mi proyecto de fin de carrera (que entrego el martes) y tengo la web montada solo en mi ordenador. Por esto no puede ser.

Incluso he probado la posibilidad de en vez de conectarme asi:

$db_conexion= mysql_connect(&quot;$localhost&quot;, &quot;&quot;,&quot;&quot;)

que es como lo hago normalmente, hacerlo asi

$db_conexion= mysql_connect(&quot;$localhost&quot;, &quot;root&quot;)

por si se diera el caso de que se necesitase ser root para poder crear BDs, pero nada.

Me estoy volviendo loco!!!!

El caso es que es lo único que me queda para dar por concluida la web y como esto siga asi, no me quedará más remedio que quedarme
simplemente con el script del backup (que me genera el famoso fichero .sql) y cuando tenga que justificar el restore dire que solo se hace desde el servidor con un dump.

Por cierto, existiría la posibilidad de poder ejecutar remotamente un dump con el fichero .sql desde un ordenador remoto? Sería otra posibilidad. Algo así como poder subir ese archivo .sql al servidor (via ftp o algo asi) y una vez subido que se ejecutara una instrucción &quot;mysql &lt; copia.sql&quot; o algo asi.

Se puede hacer o he visto yo muchas pelis de hackers?

De todas maneras, me gusta más la primera opción.

Espero tus consejos.

Gracias y un saludo
  #6 (permalink)  
Antiguo 01/07/2002, 07:48
 
Fecha de Ingreso: mayo-2002
Mensajes: 41
Antigüedad: 21 años, 10 meses
Puntos: 0
Re: Urgente!!! Error al realizar consulta a BD

Se me olvidó comentar que sólo manejo una base de datos, la que te comenté.

Utilizo también Apache (no sé si tendrá algo que ver).

Yo ya no sé que hacer.

En el script en el que hago el backup, he quitado las instrucciones que borrar y crean despues la base de datos, pero ni así.

Nos damos por vencidos o existe alguna posibilidad?

Gracias y un saludo
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 22:28.