| @@ -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 | |