pe46dro / laravel-odbc
This package is abandoned and no longer maintained.
The author suggests using the yoramdelangen/laravel-pdo-odbc package instead.
There is no license information available for the latest version (8.0.1) of this package.
ODBC integration for Laravel framework
8.0.1
2021-03-24 15:19 UTC
Requires
- php: ^7.3|^8.0
- illuminate/database: ^8.0
- illuminate/support: ^8.0
README
This integration allows the use of odbc_* php function with Laravel framework instead of PDO.
It emulates PDO class used by Laravel.
# How to install
composer require abram/laravel-odbc
To add source in your project
# Usage Instructions
It's very simple to configure:
1) Add database to database.php file
'odbc-connection-name' => [ 'driver' => 'odbc', 'dsn' => 'OdbcConnectionName', 'database' => 'DatabaseName', 'host' => '127.0.0.1', 'username' => 'username', 'password' => 'password' ]
2) Add service provider in app.php file
'providers' => [ ... Abram\Odbc\ODBCServiceProvider::class ]
# Eloquen ORM
You can use Laravel, Eloquent ORM and other Illuminate's components as usual.
# Facade $books = DB::connection('odbc-connection-name')->table('books')->where('Author', 'Abram Andrea')->get(); # ORM $books = Book::where('Author', 'Abram Andrea')->get();
# Custom getLastInsertId() function
If you want to provide a custom getLastInsertId() function, you can extends ODBCProcessor class and override function.
class CustomProcessor extends ODBCProcessor { /** * @param Builder $query * @param null $sequence * @return mixed */ public function getLastInsertId(Builder $query, $sequence = null) { return $query->getConnection()->table($query->from)->latest('id')->first()->getAttribute($sequence); } }
# Custom Processor / QueryGrammar / SchemaGrammar
To use another class instead default one you can update your connection in:
'odbc-connection-name' => [ 'driver' => 'odbc', 'dsn' => 'OdbcConnectionName', 'database' => 'DatabaseName', 'host' => '127.0.0.1', 'username' => 'username', 'password' => 'password', 'options' => [ 'processor' => Illuminate\Database\Query\Processors\Processor::class, //default 'grammar' => [ 'query' => Illuminate\Database\Query\Grammars\Grammar::class, //default 'schema' => Illuminate\Database\Schema\Grammars\Grammar::class //default ] ] ]