PHP code example of linio / database
1. Go to this page and download the library: Download linio/database library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
linio / database example snippets
use Linio\Component\Database\DatabaseManager;
$container['db'] = function() {
$db = new DatabaseManager();
$driverOptions = [
'host' => '127.0.0.1',
'port' => 3306,
'dbname' => 'test_db',
'username' => 'root',
'password' => '',
'pdo_attributes' => [
\PDO::ATTR_PERSISTENT => true,
\PDO::ATTR_ERRMODE => \PDO::ERRMODE_EXCEPTION,
],
];
$db->addConnection(DatabaseManager::DRIVER_MYSQL, $driverOptions);
return $db;
};
$rows = $container['db']->fetchAll("SELECT * FROM `table` WHERE `field` = :value", ['value' => 'test']);
use Linio\Component\Database\DatabaseManager;
$db = new DatabaseManager(false);
public function addConnection(string $driver, array $options, string $role = DatabaseManager::ROLE_MASTER, int $weight = 1): bool;
$masterDbOptions = ['host' => '127.0.0.1', 'port' => 3306, 'dbname' => 'master_db', 'username' => 'root','password' => ''];
$db->addConnection(DatabaseManager::DRIVER_MYSQL, $masterDbOptions, DatabaseManager::ROLE_MASTER);
$bigSlaveDbOptions = ['host' => '127.0.0.1', 'port' => 3306, 'dbname' => 'big_slave_db', 'username' => 'root','password' => ''];
$db->addConnection(DatabaseManager::DRIVER_MYSQL, $bigSlaveDbOptions, DatabaseManager::ROLE_SLAVE, 5);
$smallSlaveDbOptions = ['host' => '127.0.0.1', 'port' => 3306, 'dbname' => 'small_slave_db', 'username' => 'root','password' => ''];
$db->addConnection(DatabaseManager::DRIVER_MYSQL, $smallSlaveDbOptions, DatabaseManager::ROLE_SLAVE, 2);
use Linio\Component\Database\Entity\Connection;
/**
* @return Connection[]
*/
public function getConnections() : array;
$connections = $db->getConnections();
var_dump($connections);
/*
array(2) {
'master' =>
class Linio\Component\Database\Entity\Connection
'slave' =>
array(2) {
[0] =>
class Linio\Component\Database\Entity\Connection
[1] =>
class Linio\Component\Database\Entity\Connection
}
}
*/
use Linio\Component\Database\Exception\FetchException;
use Linio\Component\Database\Exception\InvalidQueryException;
/**
* @throws InvalidQueryException
* @throws FetchException
*/
public function fetchAll(string $query, array $params = [], bool $forceMasterConnection = false): array;
$rows = $db->fetchAll("SELECT `id`,`name` FROM `table` WHERE `id` > ?", [1]);
var_dump($rows);
/*
array(2) {
[0] =>
array(2) {
'id' =>
string(1) "2"
'name' =>
string(6) "name 2"
}
[1] =>
array(2) {
'id' =>
string(1) "3"
'name' =>
string(6) "name 3"
}
}
*/
use Linio\Component\Database\Exception\FetchException;
use Linio\Component\Database\Exception\InvalidQueryException;
/**
* @throws InvalidQueryException
* @throws FetchException
*/
public function fetchOne(string $query, array $params = [], bool $forceMasterConnection = false): array;
$row = $db->fetchOne("SELECT `id`,`name` FROM `table` WHERE `id` = :id", ['id' => 1]);
var_dump($row);
/*
array(2) {
'id' =>
string(1) "1"
'name' =>
string(6) "name 1"
}
*/
use Linio\Component\Database\Exception\FetchException;
use Linio\Component\Database\Exception\InvalidQueryException;
/**
* @throws InvalidQueryException
* @throws FetchException
*/
public function fetchValue(string $query, array $params = [], bool $forceMasterConnection = false)
$name = $db->fetchValue("SELECT `name` FROM `table` WHERE `id` = :id", ['id' => 1]);
var_dump($row);
/*
string(6) "name 1"
*/
use Linio\Component\Database\Exception\FetchException;
use Linio\Component\Database\Exception\InvalidQueryException;
/**
* @throws InvalidQueryException
* @throws FetchException
*/
public function fetchKeyPairs(string $query, array $params = [], bool $forceMasterConnection = false): array;
$keyPairs = $db->fetchKeyPairs("SELECT `id`,`name` FROM `table` WHERE `id` > :id", ['id' => 1]);
var_dump($keyPairs);
/*
array(2) {
'2' =>
string(6) "name 2"
'3' =>
string(6) "name 3"
}
*/
use Linio\Component\Database\Exception\FetchException;
use Linio\Component\Database\Exception\InvalidQueryException;
/**
* @throws InvalidQueryException
* @throws FetchException
*/
public function fetchColumn(string $query, array $params = [], int $columnIndex = 0, bool $forceMasterConnection = false): array;
$names = $db->fetchColumn("SELECT `id`,`name` FROM `table` WHERE `id` > :id", ['id' => 1], 1);
var_dump($names);
/*
array(2) {
[0] =>
string(6) "name 2"
[1] =>
string(6) "name 3"
}
*/
use Linio\Component\Database\Entity\LazyFetch;
use Linio\Component\Database\Exception\InvalidQueryException;
/**
* @throws InvalidQueryException
*/
public function fetchLazy(string $query, array $params = [], bool $forceMasterConnection = false): LazyFetch;
$lazyFetch = $db->fetchLazy("SELECT `id`,`name` FROM `table` WHERE `id` > ?", [1]);
while ($row = $lazyFetch->fetch()) {
$name = $row['name'];
}
use Linio\Component\Database\Exception\InvalidQueryException;
/**
* @throws InvalidQueryException
*/
public function execute(string $query, array $params = []): int;
$affectedRowsInsert = $db->execute("INSERT INTO `table` VALUES(:id, :name)", ['id' => 10, 'name' => 'test_name']);
var_dump($affectedRowsInsert);
/*
int(1)
*/
$affectedRowsUpdate = $db->execute("UPDATE `table` SET `name` = :name", ['name' => 'test_name']);
var_dump($affectedRowsUpdate);
/*
int(3)
*/
use Linio\Component\Database\Exception\DatabaseException;
/**
* @throws DatabaseException
*/
public function escapeValue(string $value): string;
$escapedValue = $db->escapeValue('Linio\'s Library');
var_dump($escapedValue);
/*
string(17) "Linio\\'s Library"
*/
use Linio\Component\Database\Exception\DatabaseException;
/**
* @throws DatabaseException
*/
public function escapeValues(array $values): array;
$escapedValues = $db->escapeValues(['Linio\'s Library', 'Linio\'s Library']);
var_dump($escapedValues);
/*
*
array(2) {
[0]=>
string(17) "Linio\\'s Library"
[1]=>
string(17) "Linio\\'s Library"
}
*/