3v4l.org

run code in 300+ 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 = 68, Position 2 = 74
Branch analysis from position: 68
1 jumps found. (Code = 79) Position 1 = -2
Branch analysis from position: 74
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/21tR1
function name:  (null)
number of ops:  87
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          
   19    17        BOOL                                             ~12     1
         18        INIT_ARRAY                                       ~13     ~12, 'show_email'
   20    19        BOOL                                             ~14     1
         20        ADD_ARRAY_ELEMENT                                ~13     ~14, 'show_smiles'
   21    21        ADD_ARRAY_ELEMENT                                ~13     0, 'timezone_offset'
   22    22        ADD_ARRAY_ELEMENT                                ~13     5, 'messages_on_page'
   23    23        ADD_ARRAY_ELEMENT                                ~13     'uid'
         24        ADD_ARRAY_ELEMENT                                ~13     6
   18    25        ASSIGN                                                   !1, ~13
   26    26        INIT_METHOD_CALL                                         !0, 'prepare'
         27        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'
         28        DO_FCALL                                      0  $16     
         29        ASSIGN                                                   !2, $16
   27    30        INIT_METHOD_CALL                                         !2, 'bindValue'
         31        SEND_VAL_EX                                              1
         32        CHECK_FUNC_ARG                                           
         33        FETCH_DIM_FUNC_ARG                               $18     !1, 'show_email'
         34        SEND_FUNC_ARG                                            $18
         35        SEND_VAL_EX                                              5
         36        DO_FCALL                                      0          
   28    37        INIT_METHOD_CALL                                         !2, 'bindValue'
         38        SEND_VAL_EX                                              2
         39        CHECK_FUNC_ARG                                           
         40        FETCH_DIM_FUNC_ARG                               $20     !1, 'show_smiles'
         41        SEND_FUNC_ARG                                            $20
         42        SEND_VAL_EX                                              5
         43        DO_FCALL                                      0          
   29    44        INIT_METHOD_CALL                                         !2, 'bindValue'
         45        SEND_VAL_EX                                              3
         46        CHECK_FUNC_ARG                                           
         47        FETCH_DIM_FUNC_ARG                               $22     !1, 'timezone_offset'
         48        SEND_FUNC_ARG                                            $22
         49        SEND_VAL_EX                                              1
         50        DO_FCALL                                      0          
   30    51        INIT_METHOD_CALL                                         !2, 'bindValue'
         52        SEND_VAL_EX                                              4
         53        CHECK_FUNC_ARG                                           
         54        FETCH_DIM_FUNC_ARG                               $24     !1, 'messages_on_page'
         55        SEND_FUNC_ARG                                            $24
         56        SEND_VAL_EX                                              1
         57        DO_FCALL                                      0          
   32    58        ASSIGN                                                   !3, 6
   33    59        INIT_METHOD_CALL                                         !2, 'bindParam'
         60        SEND_VAL_EX                                              5
         61        SEND_VAR_EX                                              !3
         62        SEND_VAL_EX                                              1
         63        DO_FCALL                                      0          
   36    64        INIT_METHOD_CALL                                         !2, 'execute'
         65        DO_FCALL                                      0  $28     
         66        BOOL_NOT                                         ~29     $28
         67      > JMPZ                                                     ~29, ->74
   37    68    >   INIT_FCALL                                               'print_r'
         69        INIT_METHOD_CALL                                         !0, 'errorInfo'
         70        DO_FCALL                                      0  $30     
         71        SEND_VAR                                                 $30
         72        DO_ICALL                                                 
   38    73      > EXIT                                                     
   41    74    >   INIT_METHOD_CALL                                         !0, 'prepare'
         75        SEND_VAL_EX                                              'SELECT+%2A+FROM+prefs'
         76        DO_FCALL                                      0  $32     
         77        ASSIGN                                                   !4, $32
   42    78        INIT_METHOD_CALL                                         !4, 'execute'
         79        DO_FCALL                                      0          
   44    80        INIT_FCALL                                               'print_r'
         81        INIT_METHOD_CALL                                         !4, 'fetchAll'
         82        SEND_VAL_EX                                              2
         83        DO_FCALL                                      0  $35     
         84        SEND_VAR                                                 $35
         85        DO_ICALL                                                 
         86      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
152.62 ms | 1019 KiB | 14 Q