3v4l.org

run code in 300+ PHP versions simultaneously
<?php /** session_set_cookie_params(3600 * 24 * 7); session_save_path('../tmp/'); ini_set('session.gc_maxlifetime', '604800'); ini_set('session.gc_probability',1); ini_set('session.gc_divisor',1); session_start(); // Initialize Session data ob_start(); // Turn on output buffering * MySQL Database Connection Class * @access public * @package SPLIB */ class MySQL { /** * MySQL server hostname * @access private * @var string */ var $host; /** * MySQL username * @access private * @var string */ var $dbUser; /** * MySQL user's password * @access private * @var string */ var $dbPass; /** * Name of database to use * @access private * @var string */ var $dbName; /** * MySQL Resource link identifier stored here * @access private * @var string */ var $dbConn; /** * Stores error messages for connection errors * @access private * @var string */ var $connectError; /** * MySQL constructor * @param string host (MySQL server hostname) * @param string dbUser (MySQL User Name) * @param string dbPass (MySQL User Password) * @param string dbName (Database to select) * @access public */ function MySQL ($host,$dbUser,$dbPass,$dbName) { $this->host=$host; $this->dbUser=$dbUser; $this->dbPass=$dbPass; $this->dbName=$dbName; $this->connectToDb(); } /** * Establishes connection to MySQL and selects a database * @return void * @access private */ function connectToDb () { $this->dbConn=@mysqli_connect($this->host,$this->dbUser,$this->dbPass,$this->dbName); // Check connection if (mysqli_connect_errno($this->dbConn)) { trigger_error("Failed to connect to MySQL: " . mysqli_connect_error()); } /* // Make connection to MySQL server if (!$this->dbConn = @mysqli_connect($this->host, $this->dbUser, $this->dbPass,$this->dbName)) { // trigger_error('Could not connect to server'); $this->connectError=true; // Select database } else if ( !@mysqli_select_db($this->dbName,$this->dbConn) ) { // trigger_error('Could not select database'); $this->connectError=true; }*/ } /** * Checks for MySQL errors * @return boolean * @access public */ function isError () { if ( $this->connectError ) return true; $error=mysqli_error ($this->dbConn); if ( empty ($error) ) return false; else return true; } /** * Returns an instance of MySQLResult to fetch rows with * @param $sql string the database query to run * @return MySQLResult * @access public */ function query($sql) { if (!$queryResource=mysqli_query($this->dbConn,$sql)) trigger_error ('Query failed: '.mysqli_error($this->dbConn).' SQL: '.$sql); return new MySQLResult($this,$queryResource); } function multi_query($sql) { $result =""; if (!$queryResource=mysqli_multi_query($this->dbConn,$sql)) trigger_error ('Query failed: '.mysqli_error($this->dbConn).' SQL: '.$sql); do { /* store first result set */ $result = mysqli_store_result($this->dbConn); if (mysqli_more_results($this->dbConn)) { if(is_object($result) && get_class($result) == 'mysqli')mysqli_free_result($result); } } while (mysqli_next_result($this->dbConn)); return $result; } function real_escape_string($txt) { return $this->dbConn->real_escape_string($txt); } function closeConn() { if(isset($this->dbConn)) { mysqli_close($this->dbConn); unset($this->dbConn); } } function new_id() { return mysqli_insert_id($this->dbConn); // if (!$idResource=insertID()) // trigger_error ('Query failed: '.mysql_error($this->dbConn).' SQL: '); // return new MySQLResult($this,$idResource); } function num_rows($rs) { return mysqli_num_rows($rs); } } /** * MySQLResult Data Fetching Class * @access public * @package SPLIB */ class MySQLResult { /** * Instance of MySQL providing database connection * @access private * @var MySQL */ var $mysql; /** * Query resource * @access private * @var resource */ var $query; /** * MySQLResult constructor * @param object mysql (instance of MySQL class) * @param resource query (MySQL query resource) * @access public */ function MySQLResult(& $mysql,$query) { $this->mysql=& $mysql; $this->query=$query; } /** * Fetches a row from the result * @return array * @access public */ function fetch () { if ( $row=mysqli_fetch_array($this->query,MYSQLI_ASSOC) ) { return $row; } else if ( $this->size() > 0 ) { mysqli_data_seek($this->query,0); return false; } else { return false; } } /** * Returns the number of rows selected * @return int * @access public */ function size () { return mysqli_num_rows($this->query); } /** * Returns the ID of the last row inserted * @return int * @access public */ function insertID() { return mysqli_insert_id($this->mysql->dbConn); } /** * Checks for MySQL errors * @return boolean * @access public */ function isError () { return $this->mysql->isError(); } } ?>

Here you find the average performance (time & memory) of each version. A grayed out version indicates it didn't complete successfully (based on exit-code).

VersionSystem time (s)User time (s)Memory (MiB)
8.3.60.0150.00416.50
8.3.50.0120.00821.99
8.3.40.0150.00018.51
8.3.30.0110.00418.77
8.3.20.0050.00220.38
8.3.10.0040.00420.02
8.3.00.0040.00423.46
8.2.180.0100.00318.04
8.2.170.0110.00422.96
8.2.160.0060.01018.44
8.2.150.0030.00624.18
8.2.140.0000.00824.66
8.2.130.0040.00426.16
8.2.120.0040.00421.03
8.2.110.0060.00322.26
8.2.100.0000.01117.78
8.2.90.0040.00417.63
8.2.80.0050.00318.48
8.2.70.0150.00318.62
8.2.60.0090.00918.62
8.2.50.0160.00218.62
8.2.40.0160.00018.64
8.2.30.0140.00518.62
8.2.20.0130.00618.62
8.2.10.0090.00918.62
8.2.00.0110.00518.62
8.1.280.0030.01425.92
8.1.270.0060.00322.19
8.1.260.0040.00426.35
8.1.250.0050.00328.09
8.1.240.0070.00323.96
8.1.230.0070.00419.10
8.1.220.0080.00017.74
8.1.210.0030.00518.77
8.1.200.0050.01118.62
8.1.190.0050.01118.62
8.1.180.0100.00718.62
8.1.170.0130.00318.62
8.1.160.0160.00018.62
8.1.150.0150.00318.62
8.1.140.0120.00418.62
8.1.130.0110.00518.62
8.1.120.0100.00718.62
8.1.110.0140.00318.62
8.1.100.0180.00018.62
8.1.90.0150.00019.74
8.1.80.0120.00418.82
8.1.70.0140.00318.62
8.1.60.0190.00018.62
8.1.50.0060.01218.62
8.1.40.0100.00718.62
8.1.30.0050.00520.42
8.1.20.0050.01118.62
8.1.10.0070.00320.33
8.1.00.0060.00320.29
8.0.300.0040.00418.77
8.0.290.0160.00018.62
8.0.280.0070.00219.53
8.0.270.0080.00818.62
8.0.260.0100.00019.65
8.0.250.0100.00418.62
8.0.240.0140.00018.62
8.0.230.0050.00519.68
8.0.220.0100.00218.62
8.0.210.0060.00319.70
8.0.200.0050.00519.54
8.0.190.0100.00518.62
8.0.180.0100.00018.62
8.0.170.0080.00818.62
8.0.160.0070.00219.75
8.0.150.0140.00018.62
8.0.140.0120.00318.62
8.0.130.0000.01019.48
8.0.120.0060.00818.62
8.0.110.0040.00419.61
8.0.100.0060.00818.62
8.0.90.0050.00518.62
8.0.80.0000.00919.70
8.0.70.0070.00718.62
8.0.60.0060.00319.70
8.0.50.0110.00418.62
8.0.30.0040.00419.52
8.0.20.0110.00418.62
8.0.10.0100.00518.62
8.0.00.0130.00318.62
7.4.330.0110.00218.62
7.4.320.0160.00018.62
7.4.300.0130.00318.62
7.4.290.0080.00818.62
7.4.280.0150.00318.62
7.4.270.0000.01618.62
7.4.260.0130.00318.62
7.4.250.0120.00318.62
7.4.240.0110.00418.62
7.4.230.0080.00818.62
7.4.220.0120.00318.62
7.4.210.0110.00418.62
7.4.200.0120.00318.62
7.4.190.0040.01218.62
7.4.180.0110.00418.62
7.4.160.0110.00618.62
7.4.150.0090.00618.62
7.4.140.0110.00418.62
7.4.130.0130.00318.62
7.4.120.0080.00818.62
7.4.110.0130.00318.62
7.4.100.0120.00418.62
7.4.90.0060.00918.62
7.4.80.0100.00618.62
7.4.70.0150.00018.62
7.4.60.0050.01018.62
7.4.50.0150.00018.62
7.4.40.0110.00418.62
7.4.30.0110.00518.62
7.4.20.0090.00618.62
7.4.10.0160.00018.62
7.4.00.0090.00618.62
7.3.330.0070.00718.62
7.3.320.0160.00018.62
7.3.310.0070.00718.62
7.3.300.0160.00018.62
7.3.290.0120.00318.62
7.3.280.0090.00618.62
7.3.270.0120.00418.62
7.3.260.0120.00418.62
7.3.250.0100.00518.62
7.3.240.0120.00418.62
7.3.230.0090.00618.62
7.3.220.0120.00318.62
7.3.210.0110.00518.62
7.3.200.0150.00418.62
7.3.190.0100.00718.62
7.3.180.0160.00018.62
7.3.170.0130.00318.62
7.3.160.0120.00418.62
7.3.150.0160.00018.62
7.3.140.0090.00618.62
7.3.130.0080.00818.62
7.3.120.0090.00518.62
7.3.110.0050.01018.62
7.3.100.0140.00018.62
7.3.90.0100.00518.62
7.3.80.0130.00318.62
7.3.70.0150.00018.62
7.3.60.0100.00518.62
7.3.50.0090.00618.62
7.3.40.0120.00418.62
7.3.30.0050.01018.62
7.3.20.0140.00018.85
7.3.10.0100.00519.03
7.3.00.0090.00619.09
7.2.340.0120.00418.62
7.2.330.0140.00418.62
7.2.320.0150.00018.62
7.2.310.0100.00618.62
7.2.300.0080.00818.62
7.2.290.0130.00318.62
7.2.280.0110.00418.62
7.2.270.0040.01218.62
7.2.260.0110.00518.62
7.2.250.0120.00318.62
7.2.240.0120.00418.62
7.2.230.0070.00718.62
7.2.220.0080.00818.62
7.2.210.0130.00318.62
7.2.200.0160.00018.62
7.2.190.0070.00718.62
7.2.180.0090.00618.62
7.2.170.0100.00518.62
7.2.160.0120.00318.62
7.2.150.0150.00018.81
7.2.140.0100.00519.10
7.2.130.0130.00219.16
7.2.120.0070.00719.16
7.2.110.0100.00519.26
7.2.100.0050.01019.17
7.2.90.0100.00519.04
7.2.80.0090.00619.21
7.2.70.0110.00418.98
7.2.60.0150.00019.04
7.2.50.0090.00618.85
7.2.40.0100.00519.07
7.2.30.0110.00519.09
7.2.20.0090.00619.11
7.2.10.0140.00219.08
7.2.00.0050.01019.21
7.1.330.0070.00718.62
7.1.320.0050.00918.62
7.1.310.0070.00718.62
7.1.300.0050.00918.62
7.1.290.0100.00418.62
7.1.280.0110.00318.62
7.1.270.0080.00518.62
7.1.260.0090.00418.62
7.1.250.0030.01018.62
7.1.240.0150.00018.62
7.1.230.0120.00218.62
7.1.220.0110.00418.62
7.1.210.0090.00618.62
7.1.200.0110.00318.62
7.1.190.0140.00018.62
7.1.180.0100.00318.62
7.1.170.0090.00518.62
7.1.160.0120.00418.62
7.1.150.0060.00818.62
7.1.140.0110.00418.62
7.1.130.0070.00718.62
7.1.120.0000.01318.62
7.1.110.0070.00718.62
7.1.100.0040.00918.62
7.1.90.0070.00718.62
7.1.80.0110.00318.62
7.1.70.0100.00518.62
7.1.60.0060.00918.62
7.1.50.0130.00318.62
7.1.40.0090.00418.62
7.1.30.0100.00318.62
7.1.20.0110.00418.62
7.1.10.0090.00618.62
7.1.00.0090.00618.62
7.0.330.0100.00518.62
7.0.320.0110.00318.62
7.0.310.0120.00318.62
7.0.300.0140.00018.62
7.0.290.0080.00518.62
7.0.280.0100.00318.62
7.0.270.0090.00418.62
7.0.260.0110.00418.62
7.0.250.0100.00318.62
7.0.240.0070.00718.62
7.0.230.0100.00318.62
7.0.220.0100.00318.62
7.0.210.0100.00318.62
7.0.200.0090.00418.62
7.0.190.0040.00918.62
7.0.180.0080.00518.62
7.0.170.0070.00718.62
7.0.160.0090.00418.62
7.0.150.0120.00218.62
7.0.140.0070.00718.62
7.0.130.0100.00318.62
7.0.120.0090.00518.62
7.0.110.0120.00218.62
7.0.100.0100.00518.62
7.0.90.0090.00518.62
7.0.80.0070.00718.62
7.0.70.0140.00018.62
7.0.60.0100.00318.62
7.0.50.0050.00918.62
7.0.40.0000.01319.83
7.0.30.0090.00518.62
7.0.20.0070.00718.62
7.0.10.0080.00518.62
7.0.00.0070.00718.62
5.6.400.0080.00418.62
5.6.390.0140.00018.62
5.6.380.0070.00718.62
5.6.370.0130.00018.62
5.6.360.0140.00018.62
5.6.350.0090.00418.62
5.6.340.0130.00018.62
5.6.330.0120.00218.62
5.6.320.0130.00018.62
5.6.310.0070.00718.62
5.6.300.0030.01018.62
5.6.290.0070.00718.62
5.6.280.0040.01118.62
5.6.270.0080.00418.62
5.6.260.0090.00418.62
5.6.250.0100.00218.62
5.6.240.0110.00318.62
5.6.230.0100.00218.62
5.6.220.0130.00018.62
5.6.210.0080.00618.62
5.6.200.0130.00018.62
5.6.190.0070.00718.62
5.6.180.0030.01018.62
5.6.170.0130.00018.62
5.6.160.0130.00018.62
5.6.150.0110.00318.62
5.6.140.0110.00318.62
5.6.130.0050.01018.62
5.6.120.0080.00518.62
5.6.110.0110.00418.62
5.6.100.0110.00318.62
5.6.90.0070.00718.62
5.6.80.0060.00618.62
5.6.70.0130.00318.62
5.6.60.0100.00418.62
5.6.50.0040.01118.62
5.6.40.0070.00718.62
5.6.30.0110.00518.62
5.6.20.0090.00618.62
5.6.10.0110.00218.62
5.6.00.0130.00018.62
5.5.380.0100.00318.62
5.5.370.0100.00318.62
5.5.360.0080.00618.62
5.5.350.0070.00718.62
5.5.340.0130.00318.62
5.5.330.0130.00318.62
5.5.320.0160.00018.62
5.5.310.0120.00318.62
5.5.300.0050.01018.62
5.5.290.0080.00818.62
5.5.280.0080.00618.62
5.5.270.0080.00818.62
5.5.260.0000.01318.62
5.5.250.0170.00018.62
5.5.240.0120.00418.62
5.5.230.0120.00318.62
5.5.220.0070.00718.62
5.5.210.0070.00918.62
5.5.200.0080.00818.62
5.5.190.0140.00018.62
5.5.180.0150.00018.62
5.5.170.0030.01018.62
5.5.160.0110.00418.62
5.5.150.0150.00018.62
5.5.140.0110.00418.62
5.5.130.0060.00918.62
5.5.120.0080.00418.62
5.5.110.0030.01018.62
5.5.100.0100.00318.62
5.5.90.0140.00018.62
5.5.80.0120.00318.62
5.5.70.0100.00618.62
5.5.60.0090.00418.62
5.5.50.0070.00718.62
5.5.40.0140.00018.62
5.5.30.0090.00418.62
5.5.20.0070.00718.62
5.5.10.0050.00718.62
5.5.00.0080.00618.62

preferences:
44.43 ms | 401 KiB | 5 Q