3v4l.org

run code in 500+ PHP versions simultaneously
<?php class Entity extends PDO { public function __construct() { try { parent::__construct('mysql:host=localhost;dbname=X', 'db_user', 'db_pass'); parent::setAttributes(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch(PDOException $e) { die($e->getMessage()); }} } class DataSource { public static function simple_select($sql, array $values) { $smpt = (new Entity)->Prepare($sql); $smpt->execute($values); return $smpt->fetchAll(); } } class UniqueString { private $Secret; public function __construct($secret) { $this->Secret = $secret; } public function fetch() { return $this->Secret; } } class Generate { private static $Secret; private static $Sql = 'SELECT user_id FROM users WHERE salt = ?'; public static function randomString(int $len) { do { self::$Secret = mcrypt_create_iv($len, MCRYPT_DEV_URANDOM); } while (!empty(DataSource::simple_select(self::$Sql, [self::$Secret])['user_id'])); return new UniqueString(self::$Secret); } } echo Generate::randomString(16)->fetch();

preferences:
86.03 ms | 1754 KiB | 5 Q