3v4l.org

run code in 300+ PHP versions simultaneously
<?php error_reporting(E_ALL); $db = new PDO("sqlite::memory:"); $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $expectedFetchMode = \PDO::FETCH_OBJ; $db->setAttribute(\PDO::ATTR_DEFAULT_FETCH_MODE, $expectedFetchMode); print "Original (expected):\n"; $stmt = $db->query("SELECT 'v1' AS c1, 'v2' AS c2"); print_r($stmt->fetch()); print "\nPDOStatement::setFetchMode:\n"; $stmt = $db->query("SELECT 'v1' AS c1, 'v2' AS c2"); $stmt->setFetchMode(\PDO::FETCH_DEFAULT); print_r($stmt->fetch()); print "\nPDOStatement::fetch:\n"; $stmt = $db->query("SELECT 'v1' AS c1, 'v2' AS c2"); print_r($stmt->fetch(\PDO::FETCH_DEFAULT)); print "\nPDOStatement::fetchAll:\n"; $stmt = $db->query("SELECT 'v1' AS c1, 'v2' AS c2"); print_r($stmt->fetchAll(\PDO::FETCH_DEFAULT)); print "\nPDO::setAttribute:\n"; try { $db->setAttribute(\PDO::ATTR_DEFAULT_FETCH_MODE, \PDO::FETCH_DEFAULT); } catch (ValueError $e) { print "Could not set fetch mode using PDO::setAttribute: ". $e->getMessage() ."\n"; } if ($db->getAttribute(\PDO::ATTR_DEFAULT_FETCH_MODE) !== $expectedFetchMode) { print __LINE__ ." Fetch mode changed\n"; } print "Done!\n";
Output for git.master_jit, git.master
Original (expected): stdClass Object ( [c1] => v1 [c2] => v2 ) PDOStatement::setFetchMode: Fatal error: Uncaught ValueError: PDOStatement::fetch(): Argument #1 ($mode) must be a bitmask of PDO::FETCH_* constants in /in/1sLR3H:16 Stack trace: #0 /in/1sLR3H(16): PDOStatement->fetch() #1 {main} thrown in /in/1sLR3H on line 16
Process exited with code 255.

This tab shows result from various feature-branches currently under review by the php developers. Contact me to have additional branches featured.

Active branches

Archived branches

Once feature-branches are merged or declined, they are no longer available. Their functionality (when merged) can be viewed from the main output page


preferences:
51.91 ms | 598 KiB | 4 Q