PluginProbe
Tutor LMS – eLearning and online course solution / 3.9.14
Tutor LMS – eLearning and online course solution v3.9.14
4.0.7 4.0.6 4.0.5 4.0.4 4.0.3 4.0.2 4.0.1 4.0.0 3.9.15 3.9.14 3.9.13 3.9.12 3.9.11 trunk 1.0.0 1.0.0-alpha 1.0.1 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.0.7 1.0.8 1.0.9 All 191 releases
← All changes | helpers/QueryHelper.php +10 -33 trunk3.9.14 View file →
@@ -187,15 +187,11 @@
187 187 */
188 188 public static function insert_multiple_rows( $table, $request, $return_ids = false, $do_sanitize = true ) {
189 189 global $wpdb;
190 190
191 - if ( ! tutor_utils()->is_multi_dimensional_array( $request ) ) {
192 - return self::insert( $table, $request );
193 - }
194 -
195 191 $table = self::prepare_table_name( $table );
196 192 $column_keys = '';
197 - $column_values = array();
193 + $column_values = '';
198 194 $sql = '';
199 195 $last_key = array_key_last( $request );
200 196 $first_key = array_key_first( $request );
201 197 foreach ( $request as $k => $value ) {
@@ -200,10 +196,8 @@
200 196 $first_key = array_key_first( $request );
201 197 foreach ( $request as $k => $value ) {
202 198 $keys = array_keys( $value );
203 199
204 - $value_placeholder = array();
205 -
206 200 // Prepare column keys & values.
207 201 foreach ( $keys as $v ) {
208 202 $column_keys .= sanitize_key( $v ) . ',';
209 203 $sanitize_value = $value[ $v ];
@@ -209,39 +203,27 @@
209 203 $sanitize_value = $value[ $v ];
210 204 if ( $sanitize_value && $do_sanitize ) {
211 205 $sanitize_value = sanitize_text_field( $sanitize_value );
212 206 }
213 -
214 - $column_values[] = $sanitize_value;
215 -
216 - $value_placeholder[] = '%s';
207 + $column_values .= is_numeric( $sanitize_value ) ? $sanitize_value . ',' : "'$sanitize_value'" . ',';
217 208 }
218 -
219 - $value_placeholder = implode( ',', $value_placeholder );
220 -
221 209 // Trim trailing comma.
222 210 $column_keys = rtrim( $column_keys, ',' );
223 - $column_values = $wpdb->prepare( $value_placeholder, $column_values ); // Escape values.
224 -
211 + $column_values = rtrim( $column_values, ',' );
225 212 if ( $first_key === $k ) {
226 - $sql .= "INSERT INTO
227 - {$table}
228 - ($column_keys) VALUES ($column_values)
229 - ";
230 -
213 + $sql .= "INSERT INTO {$table} ($column_keys) VALUES ($column_values)";
231 214 if ( count( $request ) > 1 ) {
232 215 $sql .= ',';
233 216 }
234 217 } elseif ( $last_key == $k ) {
235 - $sql .= "( $column_values )";
218 + $sql .= "($column_values)";
236 219 } else {
237 - $sql .= "( $column_values ),";
238 -
220 + $sql .= "($column_values),";
239 221 }
240 222
241 223 // Reset keys & values to avoid duplication.
242 224 $column_keys = '';
243 - $column_values = array();
225 + $column_values = '';
244 226 }
245 227
246 228 $wpdb->query( $sql );//phpcs:ignore
247 229
@@ -246,9 +228,9 @@
246 228 $wpdb->query( $sql );//phpcs:ignore
247 229
248 230 // If error occurred then throw new exception.
249 231 if ( $wpdb->last_error ) {
250 - throw new \Exception( esc_html( $wpdb->last_error ) );
232 + throw new \Exception( $wpdb->last_error );
251 233 }
252 234
253 235 if ( $return_ids ) {
254 236 $query_ids = $wpdb->get_results(
@@ -846,12 +828,8 @@
846 828 global $wpdb;
847 829
848 830 $table = self::prepare_table_name( $table );
849 831 $where_clause = self::prepare_where_clause( $where );
850 - if ( ! empty( $where_clause ) ) {
851 - $where_clause = "WHERE {$where_clause}";
852 - }
853 -
854 832 $limit = (int) sanitize_text_field( $limit );
855 833 $limit_clause = ( -1 === $limit ) ? '' : 'LIMIT ' . $limit;
856 834
857 835 //phpcs:disable
@@ -856,9 +834,9 @@
856 834
857 835 //phpcs:disable
858 836 $query = "SELECT *
859 837 FROM {$table}
860 - {$where_clause}
838 + WHERE {$where_clause}
861 839 ORDER BY {$order_by} {$order}
862 840 {$limit_clause}";
863 841
864 842 return $wpdb->get_results(
@@ -1230,9 +1208,9 @@
1230 1208 case 'today':
1231 1209 $period_clause = "AND DATE($column) = CURDATE()";
1232 1210 break;
1233 1211 case 'monthly':
1234 - $period_clause = "AND MONTH($column) = MONTH(CURDATE()) AND YEAR($column) = YEAR(CURDATE())";
1212 + $period_clause = "AND MONTH($column) = MONTH(CURDATE())";
1235 1213 break;
1236 1214 case 'yearly':
1237 1215 $period_clause = "AND YEAR($column) = YEAR(CURDATE())";
1238 1216 break;
@@ -1383,9 +1361,8 @@
1383 1361 // If error occurred then throw new exception.
1384 1362 if ($wpdb->last_error) {
1385 1363 throw new \Exception($wpdb->last_error);
1386 1364 }
1387 -
1388 1365
1389 1366 return $result;
1390 1367 }
1391 1368