3v4l.org

run code in 500+ PHP versions simultaneously
<?php $pdo = new PDO('sqlite::memory:'); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $pdo->exec("DROP TABLE IF EXISTS prefs"); $pdo->exec("CREATE TABLE prefs( uid MEDIUMINT UNSIGNED NOT NULL, show_email BOOL NOT NULL, show_smiles BOOL NOT NULL, timezone_offset TINYINT NOT NULL, messages_on_page TINYINT UNSIGNED NOT NULL)"); // Insert first row $pdo->exec("INSERT INTO prefs VALUES(6, 1, 1, 0, 5)"); // Update row with id = 6 $prefs = array( 'show_email' => (bool) 1, 'show_smiles' => (bool) 1, 'timezone_offset' => 0, 'messages_on_page' => 5, 'uid', 6 ); $st = $pdo->prepare("UPDATE prefs SET show_email=?, show_smiles=?, timezone_offset=?, messages_on_page=? WHERE uid=?"); $st->bindValue(1, $prefs['show_email'], PDO::PARAM_BOOL); $st->bindValue(2, $prefs['show_smiles'], PDO::PARAM_BOOL); $st->bindValue(3, $prefs['timezone_offset'], PDO::PARAM_INT); $st->bindValue(4, $prefs['messages_on_page'], PDO::PARAM_INT); $id = 6; $st->bindParam(5, $id, PDO::PARAM_INT); if (!$st->execute()) { print_r($pdo->errorInfo()); exit; } $statement = $pdo->prepare('SELECT * FROM prefs'); $statement->execute(); print_r($statement->fetchAll(PDO::FETCH_ASSOC));
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 60, Position 2 = 67
Branch analysis from position: 60
1 jumps found. (Code = 61) Position 1 = -2
Branch analysis from position: 67
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/21tR1
function name:  (null)
number of ops:  80
compiled vars:  !0 = $pdo, !1 = $prefs, !2 = $st, !3 = $id, !4 = $statement
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
    3     0  E >   NEW                                                  $5      'PDO'
          1        SEND_VAL_EX                                                  'sqlite%3A%3Amemory%3A'
          2        DO_FCALL                                          0          
          3        ASSIGN                                                       !0, $5
    4     4        INIT_METHOD_CALL                                             !0, 'setAttribute'
          5        SEND_VAL_EX                                                  3
          6        SEND_VAL_EX                                                  2
          7        DO_FCALL                                          0          
    6     8        INIT_METHOD_CALL                                             !0, 'exec'
          9        SEND_VAL_EX                                                  'DROP+TABLE+IF+EXISTS+prefs'
         10        DO_FCALL                                          0          
    7    11        INIT_METHOD_CALL                                             !0, 'exec'
         12        SEND_VAL_EX                                                  'CREATE+TABLE+prefs%28%0A%09++++++++uid+MEDIUMINT+UNSIGNED+NOT+NULL%2C%0A++++++++++++show_email+BOOL+NOT+NULL%2C%0A++++++++++++show_smiles+BOOL+NOT+NULL%2C%0A++++++++++++timezone_offset+TINYINT+NOT+NULL%2C%0A++++++++++++messages_on_page+TINYINT+UNSIGNED+NOT+NULL%29'
         13        DO_FCALL                                          0          
   15    14        INIT_METHOD_CALL                                             !0, 'exec'
         15        SEND_VAL_EX                                                  'INSERT+INTO+prefs+VALUES%286%2C+1%2C+1%2C+0%2C+5%29'
         16        DO_FCALL                                          0          
   18    17        ASSIGN                                                       !1, <array>
   26    18        INIT_METHOD_CALL                                             !0, 'prepare'
         19        SEND_VAL_EX                                                  'UPDATE+prefs+SET+show_email%3D%3F%2C+show_smiles%3D%3F%2C+timezone_offset%3D%3F%2C+messages_on_page%3D%3F+WHERE+uid%3D%3F'
         20        DO_FCALL                                          0  $13     
         21        ASSIGN                                                       !2, $13
   27    22        INIT_METHOD_CALL                                             !2, 'bindValue'
         23        SEND_VAL_EX                                                  1
         24        CHECK_FUNC_ARG                                               
         25        FETCH_DIM_FUNC_ARG                                   $15     !1, 'show_email'
         26        SEND_FUNC_ARG                                                $15
         27        SEND_VAL_EX                                                  5
         28        DO_FCALL                                          0          
   28    29        INIT_METHOD_CALL                                             !2, 'bindValue'
         30        SEND_VAL_EX                                                  2
         31        CHECK_FUNC_ARG                                               
         32        FETCH_DIM_FUNC_ARG                                   $17     !1, 'show_smiles'
         33        SEND_FUNC_ARG                                                $17
         34        SEND_VAL_EX                                                  5
         35        DO_FCALL                                          0          
   29    36        INIT_METHOD_CALL                                             !2, 'bindValue'
         37        SEND_VAL_EX                                                  3
         38        CHECK_FUNC_ARG                                               
         39        FETCH_DIM_FUNC_ARG                                   $19     !1, 'timezone_offset'
         40        SEND_FUNC_ARG                                                $19
         41        SEND_VAL_EX                                                  1
         42        DO_FCALL                                          0          
   30    43        INIT_METHOD_CALL                                             !2, 'bindValue'
         44        SEND_VAL_EX                                                  4
         45        CHECK_FUNC_ARG                                               
         46        FETCH_DIM_FUNC_ARG                                   $21     !1, 'messages_on_page'
         47        SEND_FUNC_ARG                                                $21
         48        SEND_VAL_EX                                                  1
         49        DO_FCALL                                          0          
   32    50        ASSIGN                                                       !3, 6
   33    51        INIT_METHOD_CALL                                             !2, 'bindParam'
         52        SEND_VAL_EX                                                  5
         53        SEND_VAR_EX                                                  !3
         54        SEND_VAL_EX                                                  1
         55        DO_FCALL                                          0          
   36    56        INIT_METHOD_CALL                                             !2, 'execute'
         57        DO_FCALL                                          0  $25     
         58        BOOL_NOT                                             ~26     $25
         59      > JMPZ                                                         ~26, ->67
   37    60    >   INIT_FCALL                                                   'print_r'
         61        INIT_METHOD_CALL                                             !0, 'errorInfo'
         62        DO_FCALL                                          0  $27     
         63        SEND_VAR                                                     $27
         64        DO_ICALL                                                     
   38    65      > INIT_FCALL                                                   'exit'
         66*       DO_ICALL                                                     
   41    67    >   INIT_METHOD_CALL                                             !0, 'prepare'
         68        SEND_VAL_EX                                                  'SELECT+%2A+FROM+prefs'
         69        DO_FCALL                                          0  $30     
         70        ASSIGN                                                       !4, $30
   42    71        INIT_METHOD_CALL                                             !4, 'execute'
         72        DO_FCALL                                          0          
   44    73        INIT_FCALL                                                   'print_r'
         74        INIT_METHOD_CALL                                             !4, 'fetchAll'
         75        SEND_VAL_EX                                                  2
         76        DO_FCALL                                          0  $33     
         77        SEND_VAR                                                     $33
         78        DO_ICALL                                                     
         79      > RETURN                                                       1

Generated using Vulcan Logic Dumper, using php 8.5.0


preferences:
159.03 ms | 2368 KiB | 15 Q