Foros del Web » Programando para Internet » PHP »

Crear base de datos desde php

Estas en el tema de Crear base de datos desde php en el foro de PHP en Foros del Web. hola, yo tengo un formulario en donde pido el nombre de la base de datos esto esta en un texbox en donde se bede digitar, ...
  #1 (permalink)  
Antiguo 01/09/2006, 10:05
Avatar de Stickmaster2004  
Fecha de Ingreso: septiembre-2004
Ubicación: Barranquilla
Mensajes: 568
Antigüedad: 19 años, 7 meses
Puntos: 0
Crear base de datos desde php

hola, yo tengo un formulario en donde pido el nombre de la base de datos esto esta en un texbox en donde se bede digitar, lo valide para que lo coloque en solo letras, una vez que le doy al boton pues me debe crear la base de datos en mysql con ese nombre y unas tablas que siempre van a ser las mismas.

es decir si coloco en el textbox: chevrolet, pues se me debe crear una base de datos llamada chevrolet, y dentro de ellas unas tablas que siempre van a ser las mismas por decir "usuario".

si alguien tiene un ejemplillo de como hacer esto, o idea de como hacer esto por favor pegueme una ayudadita, no tengo ideas de ello.

le agradeceria muchisimo.

bye.
__________________
Solo el que se basa en conocimiento basico y cultiva el aprendizaje obtendra sabiduria
  #2 (permalink)  
Antiguo 01/09/2006, 10:10
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Lo que necesitas principalmente es la sentencia SQL adecuada para crear BBDD en tu sistema. No indicas que motor de BBDD usas .. así que el comando SQL podría variar y por no decir el tipo de funciones a usar de PHP.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 01/09/2006, 10:26
Avatar de Stickmaster2004  
Fecha de Ingreso: septiembre-2004
Ubicación: Barranquilla
Mensajes: 568
Antigüedad: 19 años, 7 meses
Puntos: 0
bd

bueno, la base de datos con que estoy trabajando es mysql y bueno se que para crear la tabla en mysql es asi:

CREATE DATABASE chevrolet;

pero no se como meterle las sentencias php ni como implementar dbconnect si no tengo la base de datos creada si no que la necesito crear, aqui debajo esta un ejemplillo que vi en internet pero para crear tablas pero no se como se hace para la base de datos

<?php

// Connect to our database
// ----------------------------------
// $conn = dbconnect();

$sql = 'DROP TABLE IF EXISTS `zones`';
mysql_query( $sql, $conn );

$sql = 'CREATE TABLE `zones` (
`zid` TINYINT( 3 ) UNSIGNED NOT NULL AUTO_INCREMENT,
`zdesc` VARCHAR( 150 ) NOT NULL,
`zwidth` SMALLINT( 3 ) DEFAULT 0 NOT NULL,
`zheight` SMALLINT( 3 ) DEFAULT 0 NOT NULL,
`zmax` MEDIUMINT(7) unsigned NOT NULL default 12288,
PRIMARY KEY ( `zid` )
)';
echo 'Creating table: \'zones\'....';
mysql_query( $sql, $conn );

$sql = 'DROP TABLE IF EXISTS `bcategory`';
mysql_query( $sql, $conn );

$sql = 'CREATE TABLE `bcategory` (
`bid` int(10) NOT NULL default 0,
`cid` int(10) NOT NULL default 0,
PRIMARY KEY ( `bid`, `cid` )
)';
echo 'Creating table: \'bcategory\'....';
mysql_query( $sql, $conn );

?>
__________________
Solo el que se basa en conocimiento basico y cultiva el aprendizaje obtendra sabiduria
  #4 (permalink)  
Antiguo 01/09/2006, 10:28
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Revisa las funciones de Msyql en:

www.php.net/mysql

Ahí veras las funciones mysql_connect()

$conn=mysql_connect(....);

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 01/09/2006, 10:49
Avatar de Stickmaster2004  
Fecha de Ingreso: septiembre-2004
Ubicación: Barranquilla
Mensajes: 568
Antigüedad: 19 años, 7 meses
Puntos: 0
db y funcion que no sale

gracias, pero segun el manual asi se crea la base de datos, pero me da error

<?php
$link = mysql_connect('localhost', '', '');
if (!$link) {
die('Could not connect: ' . mysql_error());
}

if (mysql_create_db('chevrolet')) {
echo "Database created successfully\n";
} else {
echo 'Error creating database: ' . mysql_error() . "\n";
}
?>

pero me sale el siguiente error:

Fatal error: Call to undefined function mysql_create_db() in c:\Servidor\WEB\bd.php on line 8

a que se debe???
__________________
Solo el que se basa en conocimiento basico y cultiva el aprendizaje obtendra sabiduria
  #6 (permalink)  
Antiguo 01/09/2006, 10:58
Avatar de Stickmaster2004  
Fecha de Ingreso: septiembre-2004
Ubicación: Barranquilla
Mensajes: 568
Antigüedad: 19 años, 7 meses
Puntos: 0
Sonrisa bueno ya lo he conseguido!!!

era simple solo era cuestion de mandarle la consulta, solo que ahora necesito validar si esa base de datos ya existe, el codigo para crear la base de datos es el siguiente:

<?php
$link = mysql_connect('localhost','','');

mysql_query("create database chevrolet", $link);

?>
__________________
Solo el que se basa en conocimiento basico y cultiva el aprendizaje obtendra sabiduria
  #7 (permalink)  
Antiguo 01/09/2006, 11:24
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Si te fijas más en el manual oficial de PHP sobre funciones de Mysql veras que puedes intentar seleccionar la BBDD y ahí esperar un error (sería una solución):

Código PHP:
// Conectar a tu BBDD ...
if (@mysql_select_db("tu_db_nombre")){
  echo 
"existe la BBDD .. conectado a ella (para seguir creando tablas y datos ..)";
} else {
   echo 
"No existe la tabla";

(uso el @ para evitar el mensaje de error que me arrojará PHP .. así lo trato con mi "if()").

Otra opción (la mejor) es usar SQL. En SQL de Msyql tienes funciones para ver si existen BBDD .. De hecho en SQL sólo puedes hacer construcciones tipo "Si no existe la BBDD tal .. la creas":
podrías usar:

CREATE DATABASE IF NOT EXISTS nombre_bbdd

Revisa la documentación de PHP al respecto:
http://dev.mysql.com/doc/refman/5.0/...-database.html

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #8 (permalink)  
Antiguo 01/09/2006, 11:45
Avatar de Stickmaster2004  
Fecha de Ingreso: septiembre-2004
Ubicación: Barranquilla
Mensajes: 568
Antigüedad: 19 años, 7 meses
Puntos: 0
Sonrisa esta buena la solucion, pero lo he conseguido con esto

bueno, por hay estuve leyendo sobre las funciones mysql_list_dbs(); y mysql_db_name(); pues me resultaron bien utiles para lo que queria hacer, muchas gracias por tu guia, como siempre grande Cluster.

Código PHP:
<?php
$link 
mysql_connect('localhost','','');
$lista_db mysql_list_dbs($link);

$cnt mysql_num_rows($lista_db);

$i=0;
$j=0;
while (
$i<$cnt)
{
   
$a=mysql_db_name($lista_db$i);
   
       
$i++;
   if (
$a=="chevrolet")
   {
     
$j=1;
   }
}

if (
$j=="0")
{
      
mysql_query("create database chevrolet"$link);
      echo 
"La base de datos fue creada con exito";
      
}
else
{
      echo 
"La base de datos ya existe coloquele otro nombre";
}        


?>
__________________
Solo el que se basa en conocimiento basico y cultiva el aprendizaje obtendra sabiduria
  #9 (permalink)  
Antiguo 01/09/2006, 11:50
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
No sé para que te lias con listar las BBDD que tienes disponibles como para ir a buscar un nombre de BBDD que ya exista ..

Usa la sentencia SQL que te indiqué .. lo hace todo "solita" .. Total, a tí sólo te interesa crear la BBDD si existe y si existe .. nada ... lo omites y sigues creando tablas y demás ...

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #10 (permalink)  
Antiguo 22/11/2007, 22:56
(Desactivado)
 
Fecha de Ingreso: mayo-2007
Mensajes: 547
Antigüedad: 16 años, 11 meses
Puntos: 1
Re: bueno ya lo he conseguido!!!

Cita:
Iniciado por Stickmaster2004 Ver Mensaje
era simple solo era cuestion de mandarle la consulta, solo que ahora necesito validar si esa base de datos ya existe, el codigo para crear la base de datos es el siguiente:

<?php
$link = mysql_connect('localhost','','');

mysql_query("create database chevrolet", $link);

?>

Aque te refieres de solo mandarle la consulta? lo que sucede que tengo un error similar al tuyo ya le muchas vueltas y no encuentro el error.

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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 18:41.