pdo = new PDO( 'pgsql:host=tfb-database;dbname=hello_world', 'benchmarkdbuser', 'benchmarkdbpass', [ PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_EMULATE_PREPARES => false ] ); $this->world = $this->random = $this->pdo->prepare('SELECT id,randomNumber FROM World WHERE id=?'); $this->fortune = $this->pdo->prepare('SELECT id,message FROM Fortune'); $this->update = $this->pdo->prepare('UPDATE World SET randomNumber=? WHERE id=?'); } function update($request): array { $queries = $request->get('q'); $worlds = $keys = $values = []; $count = min(max((int) $queries, 1), 500); $random = $this->random; for ($i = 0; $i < $count; ++ $i) { $values[] = $keys[] = $id = mt_rand(1, 10000); $random->execute([$id]); $row = $random->fetch(); $values[] = $row['randomNumber'] = mt_rand(1, 10000); $worlds[] = $row; } if (!isset($this->updates[$count])) { $sql = 'UPDATE World SET randomNumber = CASE id' . str_repeat(' WHEN ?::INTEGER THEN ?::INTEGER ', $count) . 'END WHERE id IN (' . str_repeat('?::INTEGER,', $count - 1) . '?::INTEGER)'; $this->updates[$count] = $this->pdo->prepare($sql); } $this->updates[$count]->execute([...$values, ...$keys]); return $worlds; } }