Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   PHP (https://www.clubdelphi.com/foros/forumdisplay.php?f=15)
-   -   Laravel con Firebird (https://www.clubdelphi.com/foros/showthread.php?t=97392)

tulio 08-04-2025 13:13:16

Laravel con Firebird
 
Buen dia gente !!!!

ALguien tiene experiencia de haber conectado un proyecto Laravel con Firebird?

si me pasan datos se lo agradezco

Gracias

Casimiro Notevi 08-04-2025 17:20:23

Respuesta del amigo chatgpt:

Laravel y Firebird, es totalmente posible, pero hay algunas cosas que debe tener en cuenta, porque Laravel no incluye soporte nativo para Firebird. Aquí tienes un resumen que le puedes comentar:

Sí se puede usar Firebird con Laravel, pero necesita un driver adicional:
1. Instalar el driver Firebird para Laravel
Hay paquetes como este que permiten conectar Laravel con Firebird:
jacquestvanzuydam/laravel-firebird
Se instala con Composer:
composer require jacquestvanzuydam/laravel-firebird
Y luego se añade el nuevo driver en config/database.php:
'firebird' => [
'driver' => 'firebird',
'host' => env('DB_HOST', 'localhost'),
'database' => env('DB_DATABASE', ''),
'username' => env('DB_USERNAME', ''),
'password' => env('DB_PASSWORD', ''),
'charset' => 'UTF8',
],

2. Cambiar .env para usar Firebird
En el archivo .env de Laravel:
DB_CONNECTION=firebird
DB_HOST=127.0.0.1
DB_PORT=3050
DB_DATABASE=/ruta/a/tu_base_de_datos.fdb
DB_USERNAME=sysdba
DB_PASSWORD=tu_clave

3. Limitaciones a tener en cuenta
• Algunas funciones de Eloquent podrían no estar disponibles o tener problemas.
• Las migraciones de Laravel pueden no funcionar bien. Es mejor que la base de datos ya esté creada (o usar herramientas externas como IBExpert).
• Firebird es muy diferente a MySQL o PostgreSQL, así que algunos helpers de Laravel podrían no comportarse como se espera.

4. Alternativa: usar Query Builder o RAW SQL
Si el soporte de Eloquent es limitado, puede usar DB::select() y escribir consultas SQL directamente, lo cual funciona perfectamente.
$datos = DB::connection('firebird')->select('SELECT * FROM tabla');

Recomendaciones
• Usar Firebird 3.0 o superior, si es posible.
• Asegurarse de que la extensión interbase esté habilitada en PHP (puede verificar con phpinfo()).
• Considerar un pequeño wrapper para facilitar las conversiones si va a interactuar mucho con datos.

tulio 08-04-2025 18:58:13

Casimiro !!!!

Muchas gracias por la info, voy a empezar a ver las indicaciones

saludoss !!!

Casimiro Notevi 08-04-2025 20:25:23

De todas formas, que yo sepa, laravel es un IDE/Framework para php, y con php puedes usar perfectamente firebird.
Yo lo he usado en un proyecto y funciona todo bien.

tulio 09-04-2025 00:34:06

Casimiro

el Laragon me volvio loco , no me levanta las dll de firebird, hasta el chatGpt se rindio (jajajaj)
me da este error:
'php_pdo_firebird.dll' (tried: C:/laragon/bin/php/php-8.1.10-Win32-vs16-x64/ext\php_pdo_firebird.dll
hice pruebas de todo tipo.

Ahora te pregunto, en php puro como seria la conexion a una base firebird que la tengo mapeada en forma remota en un NO IP como
mibase.ddns.net , tengo el puerto 3050 de esa pc abierto y nateado, como seria la sinaxis php puro para conectarme. Lo siguiente tambien me da error.

$username='SYSDBA';
$password='masterkey';
$database='c:\sistemas\base_de_datos\mibase.gdb';
$connection=new mysqli('mibase.ddns.net', $username, $password, $database);

Graciasss

victor03 09-04-2025 07:12:31

Cita:

$host='tu host';

$database = "firebird:dbname=111.111.111.111/3050:C:\ruta del la BD";

$username = 'username';
$password = 'contraseña';



$db = new PDO($database,$username,$password);
$db->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);


}catch(PDOException $e){ // --> No coge este catch: salta "Internal Server Error"
cargarVista('conexionBdFallida',compact('e'));
/*echo'<h1>El Servidor actualmente no esta Disponible, inténtelo mas tarde</h1>';
echo "Conection Fail<br>";*/
echo "Error: " . $e->getMessage();
die();
}
aqui un ejemplo con PDO por si te sirve

tulio 09-04-2025 12:00:26

Graciass Victor !!


La franja horaria es GMT +2. Ahora son las 09:29:26.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi