PHPize Online / SQLize Online  /  SQLtest Online

A A A
Share      Blog   Popular
Copy Format Clear
select version() as Version;
Copy Clear
Copy Format Clear
<?php use Carbon\Carbon; use Exception; // use mysqli; $now = Carbon::now()->format('d/m/Y'); printf("Today is %s\nCurrent PHP version: %s \n\n", $now, phpversion()); $query = "SELECT VERSION() as version;"; // get DB version using PDO $stmt = $pdo->prepare($query); $stmt->execute(); $row = $stmt->fetch(PDO::FETCH_ASSOC); printf('DB version (PDO): %s ' . PHP_EOL, $row['version']); // Run query using mysqli $result = $mysqli->query($query); $version = $result->fetch_object(); printf('DB version (mysqli): %s ' . PHP_EOL, $version->version); // Select using Laravel $version = $db::select($query); printf('DB version (Laravel Query Builder): %s ' . PHP_EOL, $version[0]->version); interface DatabaseInterface { public function buildQuery(string $query, array $args = []): string; public function skip(); } class Database implements DatabaseInterface { private mysqli $mysqli; public function __construct(mysqli $mysqli) { $this->mysqli = $mysqli; } public function buildQuery(string $query, array $args = []): string { return ''; throw new Exception(); } public function skip() { throw new Exception(); } } class DatabaseTest { private DatabaseInterface $db; public function __construct(DatabaseInterface $db) { $this->db = $db; } public function testBuildQuery(): void { $results = []; $results[] = $this->db->buildQuery('SELECT name FROM users WHERE user_id = 1'); $results[] = $this->db->buildQuery( 'SELECT * FROM users WHERE name = ? AND block = 0', ['Jack'] ); $results[] = $this->db->buildQuery( 'SELECT ?# FROM users WHERE user_id = ?d AND block = ?d', [['name', 'email'], 2, true] ); $results[] = $this->db->buildQuery( 'UPDATE users SET ?a WHERE user_id = -1', [['name' => 'Jack', 'email' => null]] ); foreach ([null, true] as $block) { $results[] = $this->db->buildQuery( 'SELECT name FROM users WHERE ?# IN (?a){ AND block = ?d}', ['user_id', [1, 2, 3], $block ?? $this->db->skip()] ); } $correct = [ 'SELECT name FROM users WHERE user_id = 1', 'SELECT * FROM users WHERE name = \'Jack\' AND block = 0', 'SELECT `name`, `email` FROM users WHERE user_id = 2 AND block = 1', 'UPDATE users SET `name` = \'Jack\', `email` = NULL WHERE user_id = -1', 'SELECT name FROM users WHERE `user_id` IN (1, 2, 3)', 'SELECT name FROM users WHERE `user_id` IN (1, 2, 3) AND block = 1', ]; if ($results !== $correct) { throw new Exception('Failure.'); } } } $db = new Database($mysqli); $test = new DatabaseTest($db); $test->testBuildQuery(); exit('OK');
Show:  
Copy Clear