Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/pZvuD
function name: (null)
number of ops: 38
compiled vars: !0 = $testUser, !1 = $users, !2 = $result1, !3 = $result2, !4 = $result3
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
14 0 E > NEW $5 'TestUser'
1 DO_FCALL 0
2 ASSIGN !0, $5
19 3 ASSIGN !1, <array>
26 4 INIT_METHOD_CALL !0, 'initRows'
5 DO_FCALL 0
27 6 INIT_METHOD_CALL !0, 'bulkInsertAndIfDuplicateGetIds1'
7 SEND_VAR_EX !1
8 DO_FCALL 0 $10
9 ASSIGN !2, $10
28 10 INIT_METHOD_CALL !0, 'initRows'
11 DO_FCALL 0
29 12 INIT_METHOD_CALL !0, 'bulkInsertAndIfDuplicateGetIds2'
13 SEND_VAR_EX !1
14 DO_FCALL 0 $13
15 ASSIGN !3, $13
30 16 INIT_METHOD_CALL !0, 'initRows'
17 DO_FCALL 0
31 18 INIT_METHOD_CALL !0, 'bulkInsertAndIfDuplicateGetIds3'
19 SEND_VAR_EX !1
20 DO_FCALL 0 $16
21 ASSIGN !4, $16
34 22 INIT_FCALL 'json_encode'
23 SEND_VAR !2
24 DO_ICALL $18
25 CONCAT ~19 '%3Cp%3Eresult1%3C%2Fp%3E', $18
26 ECHO ~19
35 27 INIT_FCALL 'json_encode'
28 SEND_VAR !3
29 DO_ICALL $20
30 CONCAT ~21 '%3Cp%3Eresult2%3C%2Fp%3E', $20
31 ECHO ~21
36 32 INIT_FCALL 'json_encode'
33 SEND_VAR !4
34 DO_ICALL $22
35 CONCAT ~23 '%3Cp%3Eresult3%3C%2Fp%3E', $22
36 ECHO ~23
184 37 > RETURN 1
Class TestUser:
Function __construct:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/pZvuD
function name: __construct
number of ops: 18
compiled vars: !0 = $host, !1 = $dbname, !2 = $user, !3 = $password, !4 = $dsn
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
45 0 E > ASSIGN !0, 'localhost'
46 1 ASSIGN !1, 'database_name'
47 2 ASSIGN !2, 'username'
48 3 ASSIGN !3, 'password'
49 4 ROPE_INIT 5 ~10 'mysql%3Ahost%3D'
5 ROPE_ADD 1 ~10 ~10, !0
6 ROPE_ADD 2 ~10 ~10, '%3Bdbname%3D'
7 ROPE_ADD 3 ~10 ~10, !1
8 ROPE_END 4 ~9 ~10, '%3Bcharset%3Dutf8mb4'
9 ASSIGN !4, ~9
50 10 NEW $15 'PDO'
11 SEND_VAR_EX !4
12 SEND_VAR_EX !2
13 SEND_VAR_EX !3
14 DO_FCALL 0
15 ASSIGN_OBJ 'pdo'
16 OP_DATA $15
51 17 > RETURN null
End of function __construct
Function initrows:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 42) Position 1 = 17
Branch analysis from position: 17
1 jumps found. (Code = 62) Position 1 = -2
Found catch point at position: 13
Branch analysis from position: 13
2 jumps found. (Code = 107) Position 1 = 14, Position 2 = -2
Branch analysis from position: 14
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/pZvuD
function name: initRows
number of ops: 18
compiled vars: !0 = $e
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
58 0 E > FETCH_OBJ_R ~1 'pdo'
1 INIT_METHOD_CALL ~1, 'query'
2 SEND_VAL_EX '%0A++++++++++++++++CREATE+TABLE+IF+NOT+EXISTS+test_users+%28%0A++++++++++++++++++++id+INT+PRIMARY+KEY+AUTO_INCREMENT%2C%0A++++++++++++++++++++name+VARCHAR%28255%29%2C%0A++++++++++++++++++++kind+VARCHAR%28255%29%2C%0A++++++++++++++++++++age+INT%2C%0A++++++++++++++++++++UNIQUE+KEY+unique_name_kind+%28name%2C+kind%29%0A++++++++++++++++%29%0A++++++++++++'
3 DO_FCALL 0
69 4 FETCH_OBJ_R ~3 'pdo'
5 INIT_METHOD_CALL ~3, 'query'
6 SEND_VAL_EX '%0A++++++++++++++++TRUNCATE+TABLE+test_users%3B%0A++++++++++++++++ALTER+TABLE+test_users+AUTO_INCREMENT+%3D+1%3B%0A++++++++++++'
7 DO_FCALL 0
75 8 FETCH_OBJ_R ~5 'pdo'
9 INIT_METHOD_CALL ~5, 'query'
10 SEND_VAL_EX '%0A++++++++++++++++INSERT+INTO+test_users%0A++++++++++++++++++++%28name%2C+kind%2C+age%29%0A++++++++++++++++VALUES%0A++++++++++++++++++++%28%27John%27%2C+%27TypeA%27%2C+25%29%2C%0A++++++++++++++++++++%28%27John%27%2C+%27TypeB%27%2C+30%29%2C%0A++++++++++++++++++++%28%27Alice%27%2C+%27TypeB%27%2C+28%29%0A++++++++++++'
11 DO_FCALL 0
12 > JMP ->17
83 13 E > > CATCH last 'PDOException'
84 14 > INIT_METHOD_CALL !0, 'getMessage'
15 DO_FCALL 0 $7
16 ECHO $7
86 17 > > RETURN null
End of function initrows
Function bulkinsertandifduplicategetids1:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 9, Position 2 = 19
Branch analysis from position: 9
2 jumps found. (Code = 78) Position 1 = 10, Position 2 = 19
Branch analysis from position: 10
1 jumps found. (Code = 42) Position 1 = 9
Branch analysis from position: 9
Branch analysis from position: 19
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 19
Found catch point at position: 23
Branch analysis from position: 23
2 jumps found. (Code = 107) Position 1 = 24, Position 2 = -2
Branch analysis from position: 24
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/pZvuD
function name: bulkInsertAndIfDuplicateGetIds1
number of ops: 29
compiled vars: !0 = $users, !1 = $ids, !2 = $sql, !3 = $stmt, !4 = $user, !5 = $e
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
91 0 E > RECV !0
94 1 ASSIGN !1, <array>
97 2 ASSIGN !2, 'INSERT+INTO+test_users+%28name%2C+kind%2C+age%29%0A++++++++VALUES+%28%3Aname%2C+%3Akind%2C+%3Aage%29%0A++++++++ON+DUPLICATE+KEY+UPDATE%0A++++++++id+%3D+LAST_INSERT_ID%28id%29'
103 3 FETCH_OBJ_R ~8 'pdo'
4 INIT_METHOD_CALL ~8, 'prepare'
5 SEND_VAR_EX !2
6 DO_FCALL 0 $9
7 ASSIGN !3, $9
105 8 > FE_RESET_R $11 !0, ->19
9 > > FE_FETCH_R $11, !4, ->19
106 10 > INIT_METHOD_CALL !3, 'execute'
11 SEND_VAR_EX !4
12 DO_FCALL 0
107 13 FETCH_OBJ_R ~14 'pdo'
14 INIT_METHOD_CALL ~14, 'lastInsertId'
15 DO_FCALL 0 $15
16 ASSIGN_DIM !1
17 OP_DATA $15
105 18 > JMP ->9
19 > FE_FREE $11
110 20 VERIFY_RETURN_TYPE !1
21 > RETURN !1
22* JMP ->27
111 23 E > > CATCH last 'PDOException'
112 24 > INIT_METHOD_CALL !5, 'getMessage'
25 DO_FCALL 0 $16
26 ECHO $16
114 27 VERIFY_RETURN_TYPE
28 > RETURN null
End of function bulkinsertandifduplicategetids1
Function bulkinsertandifduplicategetids2:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 23, Position 2 = 33
Branch analysis from position: 23
2 jumps found. (Code = 78) Position 1 = 24, Position 2 = 33
Branch analysis from position: 24
1 jumps found. (Code = 42) Position 1 = 23
Branch analysis from position: 23
Branch analysis from position: 33
1 jumps found. (Code = 42) Position 1 = 45
Branch analysis from position: 45
2 jumps found. (Code = 44) Position 1 = 48, Position 2 = 39
Branch analysis from position: 48
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 39
2 jumps found. (Code = 44) Position 1 = 48, Position 2 = 39
Branch analysis from position: 48
Branch analysis from position: 39
Branch analysis from position: 33
Found catch point at position: 51
Branch analysis from position: 51
2 jumps found. (Code = 107) Position 1 = 52, Position 2 = -2
Branch analysis from position: 52
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/pZvuD
function name: bulkInsertAndIfDuplicateGetIds2
number of ops: 57
compiled vars: !0 = $users, !1 = $ids, !2 = $placeholders, !3 = $sql, !4 = $stmt, !5 = $params, !6 = $user, !7 = $i, !8 = $e
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
119 0 E > RECV !0
122 1 ASSIGN !1, <array>
125 2 INIT_FCALL 'implode'
3 SEND_VAL '%2C+'
4 INIT_FCALL 'array_fill'
5 SEND_VAL 0
6 COUNT ~10 !0
7 SEND_VAL ~10
8 SEND_VAL '%28%3F%2C+%3F%2C+%3F%29'
9 DO_ICALL $11
10 SEND_VAR $11
11 DO_ICALL $12
12 ASSIGN !2, $12
127 13 CONCAT ~14 'INSERT+INTO+test_users+%28name%2C+kind%2C+age%29%0A++++++++VALUES+', !2
14 CONCAT ~15 ~14, '%0A++++++++ON+DUPLICATE+KEY+UPDATE%0A++++++++id+%3D+LAST_INSERT_ID%28id%29'
126 15 ASSIGN !3, ~15
132 16 FETCH_OBJ_R ~17 'pdo'
17 INIT_METHOD_CALL ~17, 'prepare'
18 SEND_VAR_EX !3
19 DO_FCALL 0 $18
20 ASSIGN !4, $18
134 21 ASSIGN !5, <array>
135 22 > FE_RESET_R $21 !0, ->33
23 > > FE_FETCH_R $21, !6, ->33
136 24 > INIT_FCALL 'array_merge'
25 SEND_VAR !5
26 INIT_FCALL 'array_values'
27 SEND_VAR !6
28 DO_ICALL $22
29 SEND_VAR $22
30 DO_ICALL $23
31 ASSIGN !5, $23
135 32 > JMP ->23
33 > FE_FREE $21
138 34 INIT_METHOD_CALL !4, 'execute'
35 SEND_VAR_EX !5
36 DO_FCALL 0
140 37 ASSIGN !7, 0
38 > JMP ->45
141 39 > FETCH_OBJ_R ~28 'pdo'
40 INIT_METHOD_CALL ~28, 'lastInsertId'
41 DO_FCALL 0 $29
42 ASSIGN_DIM !1
43 OP_DATA $29
140 44 PRE_INC !7
45 > COUNT ~31 !0
46 IS_SMALLER !7, ~31
47 > JMPNZ ~32, ->39
144 48 > VERIFY_RETURN_TYPE !1
49 > RETURN !1
50* JMP ->55
145 51 E > > CATCH last 'PDOException'
146 52 > INIT_METHOD_CALL !8, 'getMessage'
53 DO_FCALL 0 $33
54 ECHO $33
148 55 VERIFY_RETURN_TYPE
56 > RETURN null
End of function bulkinsertandifduplicategetids2
Function bulkinsertandifduplicategetids3:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 23, Position 2 = 33
Branch analysis from position: 23
2 jumps found. (Code = 78) Position 1 = 24, Position 2 = 33
Branch analysis from position: 24
1 jumps found. (Code = 42) Position 1 = 23
Branch analysis from position: 23
Branch analysis from position: 33
1 jumps found. (Code = 42) Position 1 = 45
Branch analysis from position: 45
2 jumps found. (Code = 44) Position 1 = 48, Position 2 = 39
Branch analysis from position: 48
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 39
2 jumps found. (Code = 44) Position 1 = 48, Position 2 = 39
Branch analysis from position: 48
Branch analysis from position: 39
Branch analysis from position: 33
Found catch point at position: 51
Branch analysis from position: 51
2 jumps found. (Code = 107) Position 1 = 52, Position 2 = -2
Branch analysis from position: 52
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/pZvuD
function name: bulkInsertAndIfDuplicateGetIds3
number of ops: 57
compiled vars: !0 = $users, !1 = $ids, !2 = $placeholders, !3 = $sql, !4 = $stmt, !5 = $params, !6 = $user, !7 = $i, !8 = $e
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
153 0 E > RECV !0
156 1 ASSIGN !1, <array>
159 2 INIT_FCALL 'implode'
3 SEND_VAL '%2C+'
4 INIT_FCALL 'array_fill'
5 SEND_VAL 0
6 COUNT ~10 !0
7 SEND_VAL ~10
8 SEND_VAL '%28%3F%2C+%3F%2C+%3F%29'
9 DO_ICALL $11
10 SEND_VAR $11
11 DO_ICALL $12
12 ASSIGN !2, $12
161 13 CONCAT ~14 'INSERT+INTO+test_users+%28name%2C+kind%2C+age%29%0A++++++++VALUES+', !2
14 CONCAT ~15 ~14, '%0A++++++++ON+DUPLICATE+KEY+UPDATE%0A++++++++name+%3D+VALUES%28name%29%2C%0A++++++++kind+%3D+VALUES%28kind%29'
160 15 ASSIGN !3, ~15
167 16 FETCH_OBJ_R ~17 'pdo'
17 INIT_METHOD_CALL ~17, 'prepare'
18 SEND_VAR_EX !3
19 DO_FCALL 0 $18
20 ASSIGN !4, $18
169 21 ASSIGN !5, <array>
170 22 > FE_RESET_R $21 !0, ->33
23 > > FE_FETCH_R $21, !6, ->33
171 24 > INIT_FCALL 'array_merge'
25 SEND_VAR !5
26 INIT_FCALL 'array_values'
27 SEND_VAR !6
28 DO_ICALL $22
29 SEND_VAR $22
30 DO_ICALL $23
31 ASSIGN !5, $23
170 32 > JMP ->23
33 > FE_FREE $21
173 34 INIT_METHOD_CALL !4, 'execute'
35 SEND_VAR_EX !5
36 DO_FCALL 0
175 37 ASSIGN !7, 0
38 > JMP ->45
176 39 > FETCH_OBJ_R ~28 'pdo'
40 INIT_METHOD_CALL ~28, 'lastInsertId'
41 DO_FCALL 0 $29
42 ASSIGN_DIM !1
43 OP_DATA $29
175 44 PRE_INC !7
45 > COUNT ~31 !0
46 IS_SMALLER !7, ~31
47 > JMPNZ ~32, ->39
179 48 > VERIFY_RETURN_TYPE !1
49 > RETURN !1
50* JMP ->55
180 51 E > > CATCH last 'PDOException'
181 52 > INIT_METHOD_CALL !8, 'getMessage'
53 DO_FCALL 0 $33
54 ECHO $33
183 55 VERIFY_RETURN_TYPE
56 > RETURN null
End of function bulkinsertandifduplicategetids3
End of class TestUser.
Generated using Vulcan Logic Dumper, using php 8.0.0