DEEPSEEK API PHP para conectar con Access 97

 

API para conectar con MS Access 97 usando PHP PDO

Para conectarte a una base de datos MS Access 97 desde PHP usando PDO, necesitarás usar el controlador ODBC. Aquí está la versión modificada de tu API:

php
<?php
// Configuración de la base de datos Access 97
define('DB_PATH', 'C:\\ruta\\a\\tu\\base\\de\\datos.mdb'); // Ruta al archivo .mdb
define('DB_USER', ''); // Normalmente vacío para Access 97
define('DB_PASS', ''); // Normalmente vacío para Access 97

// Conexión a la base de datos Access 97
try {
    $dsn = "odbc:Driver={Microsoft Access Driver (*.mdb)};Dbq=" . DB_PATH . ";Uid=" . DB_USER . ";Pwd=" . DB_PASS;
    $pdo = new PDO($dsn);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
    die("Error de conexión: " . $e->getMessage());
}

// Obtener el código de barras desde la solicitud POST
$data = json_decode(file_get_contents('php://input'), true);

//$codigo ='7798122311366';

$codigo = $data['codigo'];

// Buscar el artículo en la base de datos
$query = "SELECT nombre, precio FROM articulos WHERE barra = ?";
$stmt = $pdo->prepare($query);
$stmt->execute([$codigo]);

if ($stmt->rowCount() > 0) {
    $articulo = $stmt->fetch(PDO::FETCH_ASSOC);
    echo json_encode([
        'success' => true,
        'nombre' => $articulo['nombre'],
        'precio' => $articulo['precio']
    ]);
} else {
    echo json_encode(['success' => false]);
}
?>

Requisitos y consideraciones importantes:

  1. Controlador ODBC: Necesitas tener instalado el controlador "Microsoft Access Driver (*.mdb)" en tu servidor.

  2. Permisos del archivo: Asegúrate de que el servidor web tenga permisos de lectura/escritura en el archivo .mdb.

  3. Versión de PHP: Este código debería funcionar en PHP 5.3+ (Access 97 es muy antiguo).

  4. Problemas comunes:

    • Si el controlador no está instalado, verás errores de conexión.

    • Las rutas en Windows deben usar doble barra invertida (\\).

  5. Alternativa para sistemas modernos:
    Si tienes problemas con el controlador antiguo, puedes:

    • Actualizar la base de datos a un formato más reciente (.accdb)

    • Usar un puente ODBC con un DSN configurado

¿Necesitas ayuda con alguna parte específica de la configuración?

Fatal error: in C:\xampp\htdocs\escanear13\api97\api97.php on line 27

Solución para el Error en la Conexión a MS Access 97 con PHP PDO

El error fatal en la línea 27 ocurre probablemente porque hay un problema con la conexión ODBC o con la sintaxis del código. Vamos a corregir y mejorar el script:

php
<?php
// Configuración de la base de datos Access 97
define('DB_PATH', 'C:\\path\\to\\your\\database.mdb'); // Ajusta esta ruta
define('DB_USER', 'admin'); // Usuario por defecto de Access
define('DB_PASS', ''); // Contraseña si la tiene

header('Content-Type: application/json');

try {
    // Conexión usando el controlador de Access
    $dsn = "odbc:Driver={Microsoft Access Driver (*.mdb)};Dbq=".DB_PATH;
    $pdo = new PDO($dsn, DB_USER, DB_PASS);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    
    // Obtener datos POST
    $data = json_decode(file_get_contents('php://input'), true);
    $codigo = $data['codigo'] ?? null;

    if(!$codigo) {
        throw new Exception("Código no proporcionado");
    }

    // Consulta con parámetros seguros
    $query = "SELECT nombre, precio FROM articulos WHERE barra = ?";
    $stmt = $pdo->prepare($query);
    $stmt->execute([$codigo]);

    if ($stmt->rowCount() > 0) {
        $articulo = $stmt->fetch(PDO::FETCH_ASSOC);
        echo json_encode([
            'success' => true,
            'nombre' => $articulo['nombre'],
            'precio' => $articulo['precio']
        ]);
    } else {
        echo json_encode(['success' => false, 'message' => 'Artículo no encontrado']);
    }

} catch (PDOException $e) {
    echo json_encode([
        'success' => false,
        'message' => 'Error de base de datos',
        'error' => $e->getMessage()
    ]);
} catch (Exception $e) {
    echo json_encode([
        'success' => false,
        'message' => $e->getMessage()
    ]);
}
?>

Posibles causas del error y soluciones:

  1. Controlador ODBC no instalado:

    • Ve a "Panel de Control > Herramientas administrativas > Orígenes de datos ODBC"

    • En la pestaña "Controladores", busca "Microsoft Access Driver (*.mdb)"

    • Si no está, descarga e instala el Microsoft Access Database Engine

  2. Problemas con la ruta del archivo .mdb:

    • Verifica que la ruta sea correcta (usa rutas absolutas)

    • Asegúrate que el archivo existe y tiene permisos de lectura

  3. Error de sintaxis en el código:

    • He corregido posibles errores de sintaxis en el código original

    • Añadí manejo de errores más robusto

  4. Problemas con la versión de PHP:

    • MS Access 97 es muy antiguo, considera usar PHP 5.6 o inferior

    • Alternativamente, convierte la base de datos a un formato más reciente

Comentarios

Entradas populares de este blog

Copia de Seguridad de Archivo MS Access (.mdb) a Pendrive con VB6

INSERTAR Y UPDATE FECHA CON PHP MYSQL EN FORMULARIO METODO POST CON JQUERY ETIQUETA DATE

DETECTAR DIRECCION IP CON PHP Y JS