PHP - Error de conexión: SQLSTATE[01000] en página php

 
Vista:

Error de conexión: SQLSTATE[01000] en página php

Publicado por Julia (2 intervenciones) el 07/01/2024 01:07:44
Hola, estoy queriendo realizar una página web con php-base de datos access.

He creado los siguientes archivos:

biografias1.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Consulta de Parámetro en Base de Datos Access</title>
    <link rel="stylesheet" href="style.css">
</head>
<body>
 
    <div class="container">
        <h1>Link de artista</h1>
	<h2><a href="https://www.musicasdobrasil.net/biografias/biografias2.php?num_artista=5">AGOSTINHO DOS SANTOS</a></h2>
 
    </div>
 
</body>
</html>


biografias2.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Consulta de Parámetro en Base de Datos Access</title>
    <link rel="stylesheet" href="style.css">
</head>
<body>
 
    <div class="container">
        <h1>Consulta de Parámetro en Base de Datos Access</h1>
 
        <?php
            require_once 'db_connection.php';
 
            // Obtener el valor del parámetro desde la cadena de consulta
            $num_artista = isset($_GET['num_artista']) ? $_GET['num_artista'] : null;
 
            if ($num_artista !== null) {
                try {
                    // Conectar a la base de datos
                    $dbh = getDBConnection();
 
                    // Preparar la consulta con un parámetro
                    $query = "SELECT * FROM artistas WHERE num_artista = :num_artista";
                    $stmt = $dbh->prepare($query);
                    $stmt->bindParam(':num_artista', $num_artista);
                    $stmt->execute();
 
                    // Obtener y mostrar resultados
                    while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
        	    echo "Artista: " . $row['artista'] . "<br>";
		    echo "Biografia: " . $row['vida'] . "<br>";
    }
 
                    // Cerrar la conexión
                    $dbh = null;
                } catch (PDOException $e) {
                    // Manejar errores de conexión
                    echo "<p>Error de conexión: " . $e->getMessage() . "</p>";
                }
            } else {
                echo "<p>No se proporcionó un valor de parámetro.</p>";
            }
        ?>
 
    </div>
 
</body>
</html>


Y db_connection.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
 
function getDBConnection() {
    $dsn = "odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};Dbq=https://www.musicasdobrasil.net/biografias/artistas.mdb";
 
    try {
        // Intentar conectar a la base de datos
        $dbh = new PDO($dsn, $user, $pass);
        return $dbh;
    } catch (PDOException $e) {
        // Manejar errores de conexión
        echo "Error de conexión: " . $e->getMessage();
        die();
    }
}
 
?>


Cuando procedo a darle a la página biografias1.php directamente me sale el siguiente error: Error de conexión: SQLSTATE[01000] SQLDriverConnect: 0 [unixODBC][Driver Manager]Can't open lib 'Microsoft Access Driver (*.mdb, *.accdb)' : file not found


No consigo dar con el fallo... ¿Alguien que me pueda ayudar?

Muchas gracias. 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
Imágen de perfil de Alejandro
Val: 1.634
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Error de conexión: SQLSTATE[01000] en página php

Publicado por Alejandro (839 intervenciones) el 08/01/2024 16:04:55
  • Alejandro se encuentra ahora conectado en el
  • chat de PHP
No tengo experiencia con Access en PHP pero pienso que no debería ser una ruta del tipo https:// sino local ya sea dinámica o absoluta.
1
2
'\biografias\artistas.mdb'
'C:\htdocs\biografias\artistas.mdb'

https://www.musicasdobrasil.net/biografias/artistas.mdb
You don't have permission to access this resource.
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

Error de conexión: SQLSTATE[01000] en página php

Publicado por Julia (2 intervenciones) el 09/01/2024 22:26:25
Hola, Alejandro. He probado como me indicas, pero sin éxito...
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: 393
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Error de conexión: SQLSTATE[01000] en página php

Publicado por Jefferson (203 intervenciones) el 10/01/2024 03:16:24
Hola.

1) Quizás no instalaste el controlador ODBC
2) Lo instalaste, pero no lo configuraste
3) Quizás la ruta del controlador no es correcta
4) Quizás la base de datos que invocas no existe

.......

Una vez lo usé y creeme fue un dolor de cabeza.

Mi pregunta y disculpa si suene ofensivo.
Pero para que usar php y conectarte a una base de datos access??
No tiene sentido, si puedes exportar access a MySql sin problemas y si no sabes hacerlo, San Google Online buscas como hacerlo, simplemente subes las tablas de access y Online te devuelve todo el código .sql

Además que al usar la conexión a access a través de un controlador ODBC cada consulta que hagas se volverá una eternidad, puesto que access está diseñado para trabajar en su entorno y tampoco tiene motores para ello. Access usa un motor privado JET para uso doméstico, mientras que MySql en lo particular uso el InnoDB ya que es Open source y robusto para consultas complejas.

Resumiendo, lo que tratas de hacer es como vestirse de gala y montar en bicicleta

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