3v4l.org

run code in 300+ PHP versions simultaneously
<?php $db = new SQLite3(':memory:'); $db->exec("CREATE TABLE foo (bar TEXT)"); $stmt = $db->prepare("INSERT INTO foo VALUES (:bar)"); $stmt->bindValue(':bar', 'xx', SQLITE3_TEXT); $stmt->execute(); $stmt = $db->prepare("INSERT INTO foo VALUES (?)"); $stmt->bindValue(0, 'xx', SQLITE3_TEXT); $stmt->execute(); $res = $db->query("SELECT * FROM foo"); while (($row = $res->fetchArray(SQLITE3_ASSOC))) { var_dump($row); } $db = new PDO('sqlite::memory:'); $db->exec("CREATE TABLE foo (bar TEXT)"); $stmt = $db->prepare("INSERT INTO foo VALUES (:bar)"); $stmt->bindValue(':bar', 'xx', SQLITE3_TEXT); $stmt->execute(); $stmt = $db->prepare("INSERT INTO foo VALUES (?)"); $stmt->bindValue(0, 'xx', SQLITE3_TEXT); $stmt->execute();
Output for 8.0.1 - 8.0.30, 8.1.0 - 8.1.28, 8.2.0 - 8.2.19, 8.3.0 - 8.3.7
array(1) { ["bar"]=> string(2) "xx" } array(1) { ["bar"]=> NULL } Fatal error: Uncaught ValueError: PDOStatement::bindValue(): Argument #1 ($param) must be greater than or equal to 1 in /in/Zm6rN:27 Stack trace: #0 /in/Zm6rN(27): PDOStatement->bindValue(0, 'xx', 3) #1 {main} thrown in /in/Zm6rN on line 27
Process exited with code 255.
Output for 7.4.0 - 7.4.33
array(1) { ["bar"]=> string(2) "xx" } array(1) { ["bar"]=> NULL } Warning: PDOStatement::bindValue(): SQLSTATE[HY093]: Invalid parameter number: Columns/Parameters are 1-based in /in/Zm6rN on line 27

preferences:
140.72 ms | 402 KiB | 123 Q