PHP - Error seleccionando la base de datos.

 
Vista:

Error seleccionando la base de datos.

Publicado por Salva (6 intervenciones) el 21/09/2010 18:18:32
hola, buenas tardes:
He creado en el servidor donde tengo alojada la web, una base de datos MySQL que he llamado registro y que MySQL a nombrado midominio_registro. También he creado dentro de esa base de datos una tabla llamada usuarios con cuatro campos:

ID_USUARIO (int 11) auto_increment
usuario (varchar 30)
email (varchar 30)
fecha (datetime)

Por otro lado he creado en PHP un formulario llamado insertar.php con el siguiente código:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>


<title>Insertar Registro</title>
</head>

<body>


<form method="post">
<br>


<p></p>
<table>

<tbody>
<tr>

<td>usuario:</td>
<td><input name="usuario" size="30" maxlength="30" type="text"></td>
</tr>
</tbody>
</table>
<br>
<table>
<tbody>
<tr>
<td>email:   </td>
<td><input name="email" size="30" maxlength="30" type="text"></td>

</tr>

</tbody>
</table>
<br>
<input value="Grabar" type="submit">
</form>



<?php function Conectarse()
{
if (!($link=mysql_connect("localhost","usuario", "password")))
{
echo "Error conectando a la base de datos.";
exit();
}
if (!mysql_select_db("midominio_registro",$link))
{
echo "Error seleccionando la base de datos.";
exit();
}
return $link;
}

$link=Conectarse();
echo "Conexión con la base de datos conseguida.<br>";

$usuario=$_POST['usuario'];
$email=$_POST['email'];
mysql_query("insert into tbusuarios(usuario) values ('$usuario')",$link);
mysql_query("insert into tbusuarios(email) values ('$email')",$link);

mysql_close($link); //cierra la conexion


?>
</body>
</html>

Al abrir con el navegador insertar.php aparece el formulario con el texto: Error seleccionando la base de datos.

Alquien puede echarme una mano con esto, llevo algunos días buscando por el fono pero no encuentro la solución.

Gracias y saludos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Error seleccionando la base de datos.

Publicado por Gerardo Esquivel (22 intervenciones) el 21/09/2010 19:13:42
La BD "midominio_registro" NO EXISTE.

Dices que haz creado una DB con nombre "registro" y MySQL la a nombrado "midominio_registro"?, eso es nuevo para mi. Bueno la cosa es que no midominio_registro como BD no existe, talvés si se llame solamente "registro".

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Error seleccionando la base de datos.

Publicado por salva (6 intervenciones) el 21/09/2010 19:28:29
Gracias por contestar.

MySQL esta en el servidor hosting donde tengo alojada la web y donde quiero poner el formulario para que se puedan registar los visitantes a través de registro.php y que el formulario envíe los datos a la base de datos.

Al crear la base de datos con MySQL la llame registro pero al grabar MySQL le añadió midomio_registro, y aparece en el php myadmin aparece midonio_registro.

He probado:

if (!mysql_select_db("midominio_registro",$link))

y

if (!mysql_select_db("registro",$link))

y no hay forma de conectar la base de datos ni que incluya los datos del formulario en la tabla,

Al abrir la pagina registro.php aparece el formulario con el siquiente texto:

Error seleccionando la base de datos.

Puedes decirme si este código está bien escrito, la tabla se llama usuarios

mysql_query("insert into tbusuarios(usuario) values ('$usuario')",$link);
mysql_query("insert into tbusuarios(email) values ('$email')",$link);

no se como solucionarlo, tienes alguna sugerencia.

Un saludo y gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Error seleccionando la base de datos.

Publicado por Gerardo Esquivel (22 intervenciones) el 22/09/2010 03:41:52
Te sugiero que la sentencia SQL la guardes antes en una variable, esto te puede servir para que visualices a través de un echo el resultado en el browser.

$query = "INSERT INTO tbusuarios (usuario) VALUES ('".$usuario."')"

Sin embargo me parece que tu proceso es incorrecto.

mysql_query("insert into tbusuarios(usuario) values ('$usuario')",$link);
mysql_query("insert into tbusuarios(email) values ('$email')",$link);

Lo anterior me indica que insertas un registro con sólo un valor $usuario.
Despues insertas otro registro, también con un sólo valor $email.

En el supuesto de que en la tabla tbusuarios permitas la introducción de valores nulos en todos sus campos, tendrías dos registros, uno con el dato del campo usuario y un valor nulo en el campo email, el segundo registro tendrá un valor nulo en el campo usuario y un dato en el campo email, luego entonces el proceso para insertar registros no es correcto.

En el supuesto que la tabla tbusuarios sólo tenga los campos usuario y email, tendrías que crear la sentencia de la siguiente forma:

$query = "INSERT INTO tbusuarios (usuario, email) VALUES ('".$usuario."','".$email."')"

o así:

$query = "INSERT INTO tbusuarios VALUES ('".$usuario."','".$email."')"

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Error seleccionando la base de datos.

Publicado por Salva (6 intervenciones) el 22/09/2010 09:12:00
Gracias Gerardo por tu ayuda.

Puedes decirme como hago el echo para ver el error?

Creo que he hecho tus sugerencias y el código PHP que tengo es el siguiente, pero ahora me da el siguiente error:

Parse error: syntax error, unexpected T_STRING in /home/********l/public_html/insertar.php on line 64.

He probado a eliminar la linea 64. El problema persiste con: Error seleccionando la base de datos.

45 - <?php function Conectarse()
46 - {
47 - if (!($link=mysql_connect("localhost","metropol_admin", "********")))
48 - {
49- echo "Error conectando a la base de datos.";
50 - exit();
51 - }
52 - if (!mysql_select_db("metropol_registro",$link))
53 - {
54 - echo "Error seleccionando la base de datos.";
55 - exit();
56 - }
57 - return $link;
58 - }
59 -
60 - $link=Conectarse();
61 - echo "Conexión con la base de datos conseguida.<br>";
62 - $query = "INSERT INTO tbusuarios VALUES ('".$usuario."','".$email."')"
63 -
64 - mysql_close($link); //cierra la conexion
65 -
66 - ?>
67 - </body>
68 - </htm
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Error seleccionando la base de datos.

Publicado por salva (6 intervenciones) el 22/09/2010 15:51:40
Hola, gracia por tu ayuda. Esta respuesta es posterior a la que puse esta mañana.

Creo que he podido resolver alguno de los problemas, publico el archivo insertar registro y se ve bien,no da ningun mensaje de error. aparece "Conectado satisfactoriamente" el problema es que no inserta nada en la tabla usuarios de la base de datos registro. No se si es que no está bien colocada la linea en la que conecta la tabla, la sentencia, error de escritura... si está en el php, en el formulario, en el boton de envio... tienes alguna sugerencia? gracias.

Este es el código que tengo:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Insertar Registro</title>
</head>

<body>
<form method="post">
<br>
<p></p>
<table>

<tbody>
<tr>

<td>Usuario:</td>
<td><input name="Usuario" size="30" maxlength="30" type="text"></td>
</tr>
</tbody>
</table>
<br>
<table>
<tbody>
<tr>
<td>Email:   </td>
<td><input name="Email" size="30" maxlength="100" type="text"></td>

</tr>
</tbody>
</table>
<br>
<input value="Grabar" type="submit">
</form>

<?php
$link = mysql_connect('localhost', '********_admin', '********');
if (!$link) {
die('No pudo conectar: ' . mysql_error());
}
echo 'Conectado satisfactoriamente';
// make foo the current db
$db_selected = mysql_select_db('metropol_registro', $link);
if (!$db_selected) {
die ('Can\'t use foo : ' . mysql_error());
}
{
$query = "INSERT INTO tblusuarios (Usuario, Email) VALUES ('".$Usuario."','".$Email."')";
}
?>
</body>
</html>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Error seleccionando la base de datos.

Publicado por Gerardo Esquivel (22 intervenciones) el 22/09/2010 17:31:30
1) Cuando envias variables a través de POST o GET en PHP es creado una variable de tipo array asociativa, $_POST y $_GET respectivamente, luego entonces para hacer referencia a las variables especificadas en el formulario, se debe hacer de la forma $_POST["nombreVariable"].

2) Es vital que antes de ejecutar sentencias SQL, se verifique que los datos enviados tengan un valor si así se establece en los requerimientos.

3) No ejecutabas el query.

4) Etc. etc.

if ((isset($_POST["Usuario"]) && $_POST["Usuario"] != "") && (isset($_POST["Email"]) && $_POST["Email"] != "")) {
$query = "INSERT INTO tblusuarios (Usuario, Email) VALUES ('" . $_POST["Usuario"] . "','" . $_POST["Email"] . "')";
$result = mysql_query($query);
}

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Error seleccionando la base de datos.

Publicado por Salva (6 intervenciones) el 23/09/2010 08:46:49
Gracias Gerardo, estoy en ello... voy progresando...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar