|
132 | 132 | if ($data->params[1] === []) { |
133 | 133 | $result = @$db->query($data->params[0]); |
134 | 134 | } else { |
135 | | - $statement = $db->prepare($data->params[0]); |
136 | | - foreach ($data->params[1] as $index => $value) { |
137 | | - if ($value === null) { |
138 | | - $type = \SQLITE3_NULL; |
139 | | - } elseif ($value === true || $value === false) { |
140 | | - // explicitly cast bool to int because SQLite does not have a native boolean |
141 | | - $type = \SQLITE3_INTEGER; |
142 | | - $value = (int)$value; |
143 | | - } elseif (\is_int($value)) { |
144 | | - $type = \SQLITE3_INTEGER; |
145 | | - } elseif (isset($value->float)) { |
146 | | - $type = \SQLITE3_FLOAT; |
147 | | - $value = (float)$value->float; |
148 | | - } elseif (isset($value->base64)) { |
149 | | - // base64-decode string parameters as BLOB |
150 | | - $type = \SQLITE3_BLOB; |
151 | | - $value = \base64_decode($value->base64); |
152 | | - } else { |
153 | | - $type = \SQLITE3_TEXT; |
154 | | - } |
| 135 | + $statement = @$db->prepare($data->params[0]); |
| 136 | + if ($statement === false) { |
| 137 | + $result = false; |
| 138 | + } else { |
| 139 | + foreach ($data->params[1] as $index => $value) { |
| 140 | + if ($value === null) { |
| 141 | + $type = \SQLITE3_NULL; |
| 142 | + } elseif ($value === true || $value === false) { |
| 143 | + // explicitly cast bool to int because SQLite does not have a native boolean |
| 144 | + $type = \SQLITE3_INTEGER; |
| 145 | + $value = (int)$value; |
| 146 | + } elseif (\is_int($value)) { |
| 147 | + $type = \SQLITE3_INTEGER; |
| 148 | + } elseif (isset($value->float)) { |
| 149 | + $type = \SQLITE3_FLOAT; |
| 150 | + $value = (float)$value->float; |
| 151 | + } elseif (isset($value->base64)) { |
| 152 | + // base64-decode string parameters as BLOB |
| 153 | + $type = \SQLITE3_BLOB; |
| 154 | + $value = \base64_decode($value->base64); |
| 155 | + } else { |
| 156 | + $type = \SQLITE3_TEXT; |
| 157 | + } |
155 | 158 |
|
156 | | - $statement->bindValue( |
157 | | - \is_int($index) ? $index + 1 : $index, |
158 | | - $value, |
159 | | - $type |
160 | | - ); |
| 159 | + $statement->bindValue( |
| 160 | + \is_int($index) ? $index + 1 : $index, |
| 161 | + $value, |
| 162 | + $type |
| 163 | + ); |
| 164 | + } |
| 165 | + $result = @$statement->execute(); |
161 | 166 | } |
162 | | - $result = @$statement->execute(); |
163 | 167 | } |
164 | 168 |
|
165 | 169 | if ($result === false) { |
|
0 commit comments