antevenio / pdo-mysql-query-linker
PHP library that allows linking queries from diferent physical databases using mysql pdo database connections
Installs: 16 321
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 5
Forks: 0
Open Issues: 0
Requires
- php: >=5.6
- antevenio/pdo-mysql-select-iterator: ^0.1.14
Requires (Dev)
- phpunit/phpunit: ^5.7
README
PHP library that allows linking queries from diferent physical databases using mysql pdo database connections.
What is this thing
I'll explain once I get it done.
Install
To add as a dependency using composer:
composer require antevenio/pdo-mysql-query-linker
Usage example
<?php $originPdo = new PDO('mysql:host=host1;dbname=kidsshouting', 'myuser', 'mypass'); $targetPdo = new PDO('mysql:host=host2;dbname=kidsshouting', 'myuser', 'mypass'); $linker = (new \PdoMysqlQueryLinker\Linker\Factory())->create() ->origin( $originPdo, "select * from table_in_origin where column = 'something'" ) ->target( $targetPdo, "delete from table_in_destination inner join {origin} using(column)" ); // Get a limit clause block based iterator $iterator = $linker->getIterator(10000); foreach ($iterator as $row) { // do your stuff; } $linker->close(); // Get a pdo statement $stmt = $linker->execute(); $rows = $stmt->fetchAll(\PDO::FETCH_ASSOC); foreach ($rows as $row) { // do your stuff; } $linker->close(); // Get just the resolved query to run in destination adapter $query = $linker->getQuery(); $stmt = $targetPdo->query($query); $linker->close();