Foros del Web » Programando para Internet » PHP »

importar base de datos con php

Estas en el tema de importar base de datos con php en el foro de PHP en Foros del Web. ok amigos ya tengo casi listo mi instalador para el programa ahora solo me falta importar la base de datos pero como lo hago desde ...
  #1 (permalink)  
Antiguo 06/04/2009, 11:53
 
Fecha de Ingreso: enero-2008
Ubicación: Estado de México, México
Mensajes: 476
Antigüedad: 11 años, 10 meses
Puntos: 11
importar base de datos con php

ok amigos ya tengo casi listo mi instalador para el programa ahora solo me falta importar la base de datos pero como lo hago desde php por ejemplo yo tengo creada la base de datos llamada db.sql y mediante codigo php quiero importarla a la que tengo creada en mi host como le hago?
  #2 (permalink)  
Antiguo 06/04/2009, 11:55
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 13 años, 6 meses
Puntos: 2135
Respuesta: importar base de datos con php

Pues creo la opción más optima es que llames al interprete de mysql usando system() para que este lea el .sql y levante la base de datos, ya que hacer el parsing desde PHP te puede tomar más tiempo.

Saludos.
  #3 (permalink)  
Antiguo 06/04/2009, 11:57
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 11 años, 8 meses
Puntos: 2534
Respuesta: importar base de datos con php

con PHP, usando mysql_query() ¿??

con SQL, debe existir algo similar... LOAD FILE ... (o algo así)

importar sql con php
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #4 (permalink)  
Antiguo 06/04/2009, 11:57
 
Fecha de Ingreso: enero-2008
Ubicación: Estado de México, México
Mensajes: 476
Antigüedad: 11 años, 10 meses
Puntos: 11
Respuesta: importar base de datos con php

por ejemplo yo estoy usando este codigo pero no me importa nada:

Código PHP:
$archivo 'db.sql'
$conecto mysql_connect ($db_server$db_user ,$db_password);
mysql_select_db($db_name$conecto);
$fin mysql_query (file_get_contents('db.sql'));
if (
$fin) {
echo 
"<span class='Estilo1'><br<img src='/trades/images/ajax.gif' /> Subir base de datos Listo.<br>
<div align='center'>
  <p>&iexcl;Enhorabuena!<br>
    <a href='"
.$url."'>&iexcl;Visita tu p&aacute;gina web haciendo clic aqu&iacute;! </a></p>
  <p>Instalación realizada con éxito, por favor, por seguridad elimina el instalar.php, el instalar2.php y el dblimpia.sql.</p>
  </span></div>
"
;
} else {
echo 
"<span class='Estilo1'>Error al subir fichero a la base de datos.</span>";

o me podrias dar algun ejemplo de lo que me dices del system?
  #5 (permalink)  
Antiguo 06/04/2009, 12:03
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 13 años, 6 meses
Puntos: 2135
Respuesta: importar base de datos con php


Código php:
Ver original
  1. system( 'mysql --user=algo --password=otracosa db < /path/a/tu/sql.sql' );
  #6 (permalink)  
Antiguo 06/04/2009, 12:03
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 11 años, 8 meses
Puntos: 2534
Respuesta: importar base de datos con php



Código PHP:
$fin mysql_query (file_get_contents('db.sql')) or die(mysql_error()); 
Edito: ...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Última edición por pateketrueke; 06/04/2009 a las 12:05 Razón: ...
  #7 (permalink)  
Antiguo 06/04/2009, 12:07
 
Fecha de Ingreso: enero-2008
Ubicación: Estado de México, México
Mensajes: 476
Antigüedad: 11 años, 10 meses
Puntos: 11
mmmmmmmmm gracias pateke ahora se que no es error en el codigo si no en la base de datos jejeje vere si en verdad ese es el error y si no pues vendre a dar lata por aquide nuevo tambien gracias a ti GatorV

Bueno la importacion ya trabaja pero ahora no se que pasa exporte la base de datos usando phpmyadmin y la puse dentro del archivo sql pero a la hora de la importacion mediante el instalador me marca este error.
Cita:
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 'CREATE TABLE IF NOT EXISTS `cw_comentarios` ( `id_coment` int(11) NOT NULL aut' at line 22

Última edición por GatorV; 08/04/2009 a las 14:14
  #8 (permalink)  
Antiguo 08/04/2009, 14:14
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 13 años, 6 meses
Puntos: 2135
Respuesta: importar base de datos con php

Imprime tu query como la estas mandando es probable que tengas algo antes de eso que cause el error.

Saludos.
  #9 (permalink)  
Antiguo 08/04/2009, 14:20
 
Fecha de Ingreso: enero-2008
Ubicación: Estado de México, México
Mensajes: 476
Antigüedad: 11 años, 10 meses
Puntos: 11
Respuesta: importar base de datos con php

mmmmm el query es el codigo verdad? si es asi pues no lo creo inicio como primera linea con esto:

Código:
CREATE TABLE IF NOT EXISTS `cw_comentarios` (
  `id_coment` int(11) NOT NULL auto_increment,
  `id_user` varchar(20) collate utf8_spanish_ci default NULL,
  `comentario` text collate utf8_spanish_ci,
  `id_post` varchar(20) collate utf8_spanish_ci default NULL,
  `fecha` text collate utf8_spanish_ci NOT NULL,
  `id_cat` varchar(20) collate utf8_spanish_ci NOT NULL default '0',
  PRIMARY KEY  (`id_coment`),
  FULLTEXT KEY `id_cat` (`id_cat`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_spanish_ci AUTO_INCREMENT=210 ;
y segun yo eso esta bien

o a que te refieres jejeje es que no soy tan experto.
  #10 (permalink)  
Antiguo 08/04/2009, 14:27
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 13 años, 6 meses
Puntos: 2135
Respuesta: importar base de datos con php

Antes de pasarlo por mysql_query haz un echo de la variable que tiene tu consulta para que veas porque tiene el problema.

Saludos.
  #11 (permalink)  
Antiguo 08/04/2009, 14:33
 
Fecha de Ingreso: enero-2008
Ubicación: Estado de México, México
Mensajes: 476
Antigüedad: 11 años, 10 meses
Puntos: 11
Respuesta: importar base de datos con php

ok eso si lo se hacer pero de toda la base de datos o le pido que es lo que quiero como harias tu la sintaxis para eso?
  #12 (permalink)  
Antiguo 08/04/2009, 14:41
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 13 años, 6 meses
Puntos: 2135
Respuesta: importar base de datos con php

Pues lo que te comento es para que veas en donde te esta dando el error, o para máyor apunte haz algo así:
Código php:
Ver original
  1. // cosas
  2. $result = mysql_query( $query ) or die( "Error al ejecutar $query, error: " . mysql_error() );

Saludos.
  #13 (permalink)  
Antiguo 08/04/2009, 14:55
 
Fecha de Ingreso: enero-2008
Ubicación: Estado de México, México
Mensajes: 476
Antigüedad: 11 años, 10 meses
Puntos: 11
Respuesta: importar base de datos con php

wow lo eh usado y me manda este error.

Cita:
Error al ejecutar , error: Query was empty
  #14 (permalink)  
Antiguo 08/04/2009, 15:17
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 13 años, 6 meses
Puntos: 2135
Respuesta: importar base de datos con php

Eso significa que la variable que estas enviando esta vacia, por eso te lanza el error, prueba usar empty() para comprobar si la variable esta o no vacia.

Saludos.
  #15 (permalink)  
Antiguo 08/04/2009, 16:12
 
Fecha de Ingreso: enero-2008
Ubicación: Estado de México, México
Mensajes: 476
Antigüedad: 11 años, 10 meses
Puntos: 11
Respuesta: importar base de datos con php

mmmmmmm empty no me manda nada eso lo declaro antes o despues del codigo que me diste?
  #16 (permalink)  
Antiguo 08/04/2009, 16:55
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 13 años, 6 meses
Puntos: 2135
Respuesta: importar base de datos con php

Pues es simple (pseudocódigo):
Código:
if( !empty( var_del_query ) ) {
     enviar_query( var_del_query )
} else {
     imprimir( 'query esta vacio' )
}
Saludos.
  #17 (permalink)  
Antiguo 09/04/2009, 12:17
 
Fecha de Ingreso: enero-2008
Ubicación: Estado de México, México
Mensajes: 476
Antigüedad: 11 años, 10 meses
Puntos: 11
gracias amigo lo hago mañana que este en mi pc y te comento si no crees que sean errores en la base de datos?

no pues me marca que esta vacio y no entiendo porque no podras revisar tu mi base de datos y decirme el error por fa porq ya me desespero jejeje

EDIT: Todo va bien cuando solo agrego una tabla pero cuando son mas de una me manda el mismo error de la sintaxis. que puede ser?

Bueno con nada queda esto no se que este mal ya pedi ayuda en la seccion de base de datos y me han dicho que no es un error del archivo que haber si tenia exito aqui pero pues nada no puedo importar la base de datos de una sola vez asi que se me a ocurrido que podria intentar lo siguiente:

Código PHP:
$crear="CREATE TABLE `foro` (";
$crear.="`id` int(7) NOT NULL auto_increment,";
$crear.="  `autor` varchar(200) NOT NULL default '',";
$crear.="  `titulo` varchar(200) NOT NULL default '',";
$crear.="  `mensaje` text NOT NULL,";
$crear.="`fecha` datetime NOT NULL default '0000-00-00 00:00:00',";
$crear.="`respuestas` int(11) NOT NULL default '0',";
$crear.=" `identificador` int(7) NOT NULL default '0',";
$crear.="   `ult_respuesta` datetime default NULL,";
$crear.="    KEY `id` (`id`)";
$crear.=") ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=12 ;";

$crear2="CREATE TABLE `usuarios` (";
$crear2.="  `id` int(30) NOT NULL auto_increment,";
$crear2.="    `nick` varchar(30) NOT NULL,";
$crear2.="  `clave` varchar(30) NOT NULL,";
$crear2.="  `email` varchar(30) NOT NULL,";
$crear2.="  `pais` varchar(30) NOT NULL,";
$crear2.="  `firma` varchar(30) NOT NULL,";
$crear2.="  PRIMARY KEY  (`id`)";
$crear2.=") ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ;"
usar este tipo de sintaxis en mi php para crear las tablas aunque son 55 tablas creo que sera algo laborioso a alguien se le ocurre otra cosa?

Última edición por GatorV; 12/04/2009 a las 00:21
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 13:04.