Skip to content

Commit d4ca66f

Browse files
committed
Test coverage and small fixes
1 parent f41a0af commit d4ca66f

3 files changed

Lines changed: 1427 additions & 4 deletions

File tree

src/Schema/Traits/Custom_Table_Query_Methods.php

Lines changed: 24 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -226,9 +226,15 @@ function ( $c ) use ( $prepared_ids ) {
226226
* @return array<string> The prepared statements and values.
227227
*/
228228
protected static function prepare_statements_values( array $entries ): array {
229-
$uid_column = static::uid_column();
230-
$entries = array_map(
231-
function ( $entry ) use ( $uid_column ) {
229+
$uid_column = static::uid_column();
230+
$column_object = static::get_columns()->get( $uid_column );
231+
232+
$entries = array_map(
233+
function ( $entry ) use ( $uid_column, $column_object ) {
234+
if ( ! ( PHP_Types::INT === $column_object->get_php_type() && $column_object->get_auto_increment() ) ) {
235+
return $entry;
236+
}
237+
232238
unset( $entry[ $uid_column ] );
233239
return $entry;
234240
},
@@ -377,7 +383,21 @@ public static function update_many( array $entries ): bool {
377383
);
378384
}
379385

380-
return (bool) $database::query( implode( '', $queries ) );
386+
$database::beginTransaction();
387+
388+
foreach ( $queries as $query ) {
389+
$results[] = $database::query( $query );
390+
}
391+
392+
$all_good = count( array_filter( $results ) ) === count( $results );
393+
394+
if ( ! $all_good ) {
395+
$database::rollBack();
396+
return false;
397+
}
398+
399+
$database::commit();
400+
return true;
381401
}
382402

383403
/**

0 commit comments

Comments
 (0)