how to get results of a row with NULL element? I have to update the row which contains only the post_id and the repeat value, 'start' and 'end' should be NULL
mysql table screenshot: .png
$wpdb->update( $schedule_table, array( 'rpt' => $event_tag ), array( 'post_id' => $post_ID, 'start' => NULL, 'end' => NULL ), array( '%s' ) );
$wpdb->print_error();
I get this error:
WordPress database error: [] UPDATE wp_MW_3_schedule
SET rpt
= 'monday' WHERE post_id
= 357 AND start
= '' AND end
= ''
how to get results of a row with NULL element? I have to update the row which contains only the post_id and the repeat value, 'start' and 'end' should be NULL
mysql table screenshot: https://i.sstatic/r6pmA.png
$wpdb->update( $schedule_table, array( 'rpt' => $event_tag ), array( 'post_id' => $post_ID, 'start' => NULL, 'end' => NULL ), array( '%s' ) );
$wpdb->print_error();
I get this error:
WordPress database error: [] UPDATE wp_MW_3_schedule
SET rpt
= 'monday' WHERE post_id
= 357 AND start
= '' AND end
= ''
3 Answers
Reset to default 2My simple and quick solution is the use of a normal $wpdb->query() function:
$wpdb->query( $wpdb->prepare("UPDATE $schedule_table SET rpt = %s WHERE post_id = %d AND start IS NULL AND end IS NULL", $event_tag, $post_ID ) );
According to this ticket's comment, NULL
format is now working correctly and you can write your query as:
$wpdb->update(
$schedule_table,
array('rpt' => $event_tag),
array('post_id' => $post_ID, 'start' => NULL, 'end' => NULL),
array('%s'),
array('%d', NULL, NULL)
);
NULL is a php construct with special meaning, you should have probably used "NULL" instead.
$wpdb->update( $schedule_table, array( 'rpt' => $event_tag ), array( 'post_id' => $post_ID, 'start' => 'NULL', 'end' => 'NULL' ), array( '%s' ) );