PHP code example of activecollab / databaseconnection
1. Go to this page and download the library: Download activecollab/databaseconnection 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/ */
activecollab / databaseconnection example snippets
use ActiveCollab\DatabaseConnection\Connection\MysqliConnection;
use MySQLi;
use RuntimeException;
$database_link = new MySQLi('localhost', 'root', '', 'activecollab_database_connection_test');
if ($database_link->connect_error) {
throw new RuntimeException('Failed to connect to database. MySQL said: ' . $database_link->connect_error);
}
$connection = new MysqliConnection($database_link);
// List all writers
foreach ($connection->execute('SELECT `id`, `name` FROM `writers` WHERE `name` = ? ORDER BY `id`', 'Leo Tolstoy') as $row) {
print '#' . $row['id'] . ' ' . $row['name'] . "\n";
}
// Get the first cell of the first row (so we can print Tolstoy's birthday)
print $connection->executeFirstCell('SELECT `birthday` FROM `writers` WHERE `name` = ? LIMIT 0, 1', 'Leo Tolstoy');
// Get everything that we have on Leo Tolstoy
print_r($connection->executeFirstRow('SELECT * FROM `writers` WHERE `name` = ?', 'Leo Tolstoy'));
// Show names of all authors
print_r($connection->executeFirstColumn('SELECT `name` FROM `writers` ORDER BY `name`'));
use ActiveCollab\DatabaseConnection\Connection\MysqliConnection;
use ActiveCollab\DatabaseConnection\ConnectionFactory;
$connection = (new ConnectionFactory())->mysqli('localhost', 'root', '', 'activecollab_database_connection_test', 'utf8mb4');
if ($connection instanceof MysqliConnection) {
print_r($connection->getTableNames());
}
// Insert 3 rows per INSERT query in `writers` table
$batch_insert = $connection->batchInsert('writers', ['name', 'birthday'], 3);
$batch_insert->insert('Leo Tolstoy', new DateTime('1828-09-09')); // No insert
$batch_insert->insert('Alexander Pushkin', new DateTime('1799-06-06')); // No insert
$batch_insert->insert('Fyodor Dostoyevsky', new DateTime('1821-11-11')); // Insert
$batch_insert->insert('Anton Chekhov', new DateTime('1860-01-29')); // No insert
$batch_insert->done(); // Insert remaining rows and close the batch insert
$rows = $this->connection->execute('SELECT ST_AsText(`geometry`) AS "geometry" FROM `example`');
$rows->setValueCaster(
new ValueCaster(
[
'geometry' => ValueCasterInterface::CAST_SPATIAL,
]
)
);
use ActiveCollab\DatabaseConnection\Record\LoadFromRow;
use DateTime;
class Writer implements LoadFromRow
{
/**
* @var array
*/
private $row;
/**
* @param array $row
*/
public function loadFromRow(array $row)
{
$this->row = $row;
}
/**
* @return integer
*/
public function getId()
{
return $this->row['id'];
}
/**
* @return string
*/
public function getName()
{
return $this->row['name'];
}
/**
* @return DateTime
*/
public function getBirthday()
{
return new DateTime($this->row['birthday']);
}
}
use ActiveCollab\DatabaseConnection\Connection\MysqliConnection;
use DateTime;
use MySQLi;
use RuntimeException;
$database_link = new MySQLi('localhost', 'root', '', 'activecollab_database_connection_test');
if ($database_link->connect_error) {
throw new RuntimeException('Failed to connect to database. MySQL said: ' . $database_link->connect_error);
}
$connection = new MysqliConnection($database_link);
foreach ($this->connection->advancedExecute('SELECT * FROM `writers` ORDER BY `id`', null, ConnectionInterface::LOAD_ALL_ROWS, ConnectionInterface::RETURN_OBJECT_BY_CLASS, '\ActiveCollab\DatabaseConnection\Test\Fixture\Writer') as $writer) {
print '#' . $writer->getId() . ' ' . $writer->getName() . ' (' . $writer->getBirthday()->format('Y-m-d') . ')';
}
use ActiveCollab\DatabaseConnection\Connection\MysqliConnection;
use DateTime;
use MySQLi;
use RuntimeException;
$database_link = new MySQLi('localhost', 'root', '', 'activecollab_database_connection_test');
if ($database_link->connect_error) {
throw new RuntimeException('Failed to connect to database. MySQL said: ' . $database_link->connect_error);
}
$connection = new MysqliConnection($database_link);
foreach ($this->connection->advancedExecute('SELECT * FROM `writers` ORDER BY `id`', null, ConnectionInterface::LOAD_ALL_ROWS, ConnectionInterface::RETURN_OBJECT_BY_FIELD, 'type') as $writer) {
print '#' . $writer->getId() . ' ' . $writer->getName() . ' (' . $writer->getBirthday()->format('Y-m-d') . ')';
}
use ActiveCollab\DatabaseConnection\Test\Fixture\Container;
use ActiveCollab\DatabaseConnection\Test\Fixture\WriterWithContainer;
use Psr\Container\ContainerInterface;
$container = new Container([
'dependency' => 'it works!'
]);
$result = $this->connection->advancedExecute('SELECT * FROM `writers` ORDER BY `id`', null, ConnectionInterface::LOAD_ALL_ROWS, ConnectionInterface::RETURN_OBJECT_BY_CLASS, WriterWithContainer::class, null, $container);
foreach ($result as $writer) {
print $writer->dependency . "\n"; // Prints 'it works!'
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.