PHP - Error al conectar con la base de datos

 
Vista:
sin imagen de perfil
Val: 86
Ha aumentado su posición en 2 puestos en PHP (en relación al último mes)
Gráfica de PHP

Error al conectar con la base de datos

Publicado por Manuel (29 intervenciones) el 27/01/2021 23:53:21
Buenas noche, a continuación les envío el siguiente código:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
$servidor="localhost";
$basedatos = "miBase";
$db_usuario = "usuario";
$db_clave = "xxxxxx";
// Conexión con el servidor
mysqli_connect($servidor, $db_usuario, $db_clave) or die ("error1".mysqli_error());
 
// Selecciona la base de datos
mysqli_select_db($basedatos) or die ("error2".mysqli_error());
 
mysqli_query("INSERT INTO bazarotc_arbol.personas (nacimiento, persona, muerte, nota) VALUES ('$_POST[nacimiento]', '$_POST[persona]', '$_POST[muerte]', '$_POST[nota]') ");
echo "Datos transferidos. <br>";
echo '<a href="index.php">Haga clic para ir a la portada</a>';
?>
Intento introducir datos en la base y me da error2
Llevo toda la tarde dándole vuelta al código y no doy con la solución
So me pudieran ayudar se lo agradecería.
Un saludo desde Sevilla
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
Imágen de perfil de joel
Val: 3.828
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Error al conectar con la base de datos

Publicado por joel (1269 intervenciones) el 28/01/2021 14:01:35
Hola Manuel, en el mysqli_select_db() te falta añadir el conector... https://www.php.net/manual/es/mysqli.select-db.php

Tendría que ser algo así:
1
2
3
4
$link=mysqli_connect($servidor, $db_usuario, $db_clave) or die ("error1".mysqli_error());
 
// Selecciona la base de datos
mysqli_select_db($link, $basedatos) or die ("error2".mysqli_error());
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
Imágen de perfil de Mauro
Val: 2.761
Oro
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Error al conectar con la base de datos

Publicado por Mauro (1034 intervenciones) el 28/01/2021 14:15:08
Hola Manuel:

Te recomiendo no publicar datos sensibles como las credenciales y demás información de acceso a la base de datos, por otra parte, sería muy útil para ayudarte si pudieras publicar el mensaje de error que estás viendo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 86
Ha aumentado su posición en 2 puestos en PHP (en relación al último mes)
Gráfica de PHP

Error al conectar con la base de datos

Publicado por Manuel (29 intervenciones) el 28/01/2021 15:16:00
Hola buenas tardes:
He cambiado las dos líneas de código y me ha quitado el error2, pero no me incorpora los datos en la base.
En contestación a Mauro en lo sucesivo procurare no dar datos reales como me indicas.
Un saludo afectuoso desde Sevilla
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
Imágen de perfil de joel
Val: 3.828
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Error al conectar con la base de datos

Publicado por joel (1269 intervenciones) el 28/01/2021 17:32:19
Revisa haber que te devuelve la funcion mysqli_error() haber si da alguna pista
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
sin imagen de perfil
Val: 86
Ha aumentado su posición en 2 puestos en PHP (en relación al último mes)
Gráfica de PHP

Error al conectar con la base de datos

Publicado por Manuel (29 intervenciones) el 28/01/2021 23:36:32
Adjunto envío el error
Datos transferidos.
Haga clic para ir a la portada /*Failed to connect to MySQL: Access denied for user 'my_user'@'localhost' (using password: YES)
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
Imágen de perfil de joel
Val: 3.828
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Error al conectar con la base de datos

Publicado por joel (1269 intervenciones) el 29/01/2021 08:16:50
El error es claro... ese usuario no tiene el acceso denegado... no se si es que no existe, no esta bien escrito, o la contraseña es incorrecta, o no tiene acceso a esa tabla.
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
Imágen de perfil de Mauro
Val: 2.761
Oro
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Error al conectar con la base de datos

Publicado por Mauro (1034 intervenciones) el 29/01/2021 14:26:44
Es así como dice Joel.

Si puedes ingresar a tu mysql (Desde phpMyAdmin, consola o similar), intenta ejecutar este comando:

1
show grants for 'my_user'@'localhost'

Y pega el resultado.
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
sin imagen de perfil
Val: 86
Ha aumentado su posición en 2 puestos en PHP (en relación al último mes)
Gráfica de PHP

Error al conectar con la base de datos

Publicado por Manuel (29 intervenciones) el 29/01/2021 19:24:56
He ingresado en Sql el código

show grants for 'my_user'@'localhost', cambiando my_user por el nombre de mi usuario y me da el mensaje siguiente
#1044- acceso denegado para usuario 'my_user'@'localhost', para esta base de datos 'mysql'
Lo que me extraña es que a esta base de datos le envío datos desde un formulario que tengo en otra pagina web pero que comparten los datos de la base (el código de conexión con el servidor y la base de datos están escrito en mysql y funciona perfectamente, pero como en lo sucesivo hay que hacerlo con mysqli es por lo que quería cambiarlo.
Un saludo desde Sevilla
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
sin imagen de perfil

Error al conectar con la base de datos

Publicado por anonymous (53 intervenciones) el 29/01/2021 20:22:15
Con Mysqli intenta conectar así:


$conexion = new mysqli($server, $username, $password, $database);
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
Imágen de perfil de Mauro
Val: 2.761
Oro
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Error al conectar con la base de datos

Publicado por Mauro (1034 intervenciones) el 29/01/2021 21:22:59
El tema es que en MySQL no alcanza con definir el usuario y la contraseña... a los usuarios se les puede limitar el acceso según el host desde el que se conectan.

Dicho de otro modo, un usuario en MySQL no es simplemente un nombre de usuario, si no un nombre@host, ejemplo:

'myuser'@'localhost' y 'myuser'@'203.21.22.44' son dos usuarios diferentes que pueden tener permisos diferentes.

Eso debe ser lo que está ocurriendo en tu caso, tienes un usuario con permisos para ingresar desde un servidor y estás queriendo usarlos para entrar desde otro.

Esto se resuelve desde infraestructura.

Exitos!
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
sin imagen de perfil
Val: 86
Ha aumentado su posición en 2 puestos en PHP (en relación al último mes)
Gráfica de PHP

Error al conectar con la base de datos

Publicado por Manuel (29 intervenciones) el 30/01/2021 10:32:54
Buenos días Mauro:
Cuando te refieres al servidor creo que te refieres al hosting donde están alojadas las páginas, las dos están en el mismo hosting o servidor y las dos son subdominio de un dominio principal. desconozco si esta puede ser la causa.
Mi pregunta es puede una base de datos mysql servir para proporcionar datos a estas dos páginas.
Un saludo afectuoso desde Sevilla.
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
Imágen de perfil de Mauro
Val: 2.761
Oro
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Error al conectar con la base de datos

Publicado por Mauro (1034 intervenciones) el 30/01/2021 23:37:48
Hola Manuel:

No, no me refiero a hosting. Cuando digo "servidor" me refiero a la computadora donde están instalados los servicios que usas.

Cuando se habla de hosting se hace referencia a la empresa que te provee el servicio pero esa empresa seguramente tiene muchas computadoras conectadas en su red interna y es muy común que una de ellas actúe como web server (Es decir, es la que corre, por ejemplo, Apache) y otra como servidor de bases de datos (Es decir, es la que corre, por ejemplo MySQL).

En un ambiente de desarrollo local es muy común que ambos procesos corran en la misma computadora (Probablemente porque es la única que tienes :p) y es por eso que puedes conectar desde php a mysql a través de "localhost" pero si ese esquema no se mantiene en tu ambiente productivo deberás adaptarlo.

Respecto de tu pregunta específica, sí, es perfectamente posible usar una misma base de datos en más de una aplicación web, todo se reduce a un tema de manejar correctamente los permisos.

Saludos desde Buenos Aires :)
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
sin imagen de perfil
Val: 86
Ha aumentado su posición en 2 puestos en PHP (en relación al último mes)
Gráfica de PHP

Error al conectar con la base de datos

Publicado por Manuel (29 intervenciones) el 01/02/2021 20:09:55
Buenas tardes:
Con este código que les detallo a continuación he solucionado mi problema.

<?php
$mysqli_link = mysqli_connect("localhost","usuario","clave","basedatos");
if (mysqli_connect_errno())
{
printf("La conexión MySQL falló con el error:% s", mysqli_connect_error());
exit;
}
// Escapa de los caracteres especiales, si los hay
$nacimiento = mysqli_real_escape_string($mysqli_link, $_POST['nacimiento']);
$persona = mysqli_real_escape_string($mysqli_link, $_POST['persona']);
$muerte = mysqli_real_escape_string($mysqli_link, $_POST['muerte']);

$insert_query = "INSERT INTO personas (nacimiento, persona, muerte) VALUES ('$nacimiento', '$persona', '$muerte')";

// ejecutar la consulta de inserción
If (mysqli_query($mysqli_link, $insert_query)) {
echo 'Registro insertado correctamente.<br>';
echo '<a href="index.php">Haga clic para ir a la portada</a>';
}

// cerrar la conexión db
mysqli_close($mysqli_link);
?>
Por lo tanto pueden dar por cerrada la consulta una vewz solucionado el problema
Un saludo afectuoso desde Sevilla
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