Wordpress поставлется с wpdb
класс, который обрабатывает операции CRUD. Два метода этого класса, которым я интересуюсь, insert()
(C в CRUD) и update()
(U в CRUD).
Проблема возникает, когда я хочу вставить ПУСТОЙ УКАЗАТЕЛЬ в mysql столбец базы данных - wpdb
класс выходит из пустых переменных PHP к пустым строкам. Как я могу сказать Wordpress использовать фактический MySQL NULL
вместо строки MySQL?
Если вы хотите, чтобы он был совместим, вам нужно ПОКАЗАТЬ КОЛОНКУ и заранее определить, разрешен ли NULL. Если это было разрешено, тогда, если значение было пустым ($ v), используйте в запросе val = NULL.
$foo = null;
$metakey = "Harriet's Adages";
$metavalue = "WordPress' database interface is like Sunday Morning: Easy.";
if ($foo == null) {
$wpdb->query( $wpdb->prepare( "
INSERT INTO $wpdb->postmeta
( post_id, meta_key, meta_value, field_with_null )
VALUES ( %d, %s, %s, NULL )",
10, $metakey, $metavalue ) );
} else {
$wpdb->query( $wpdb->prepare( "
INSERT INTO $wpdb->postmeta
( post_id, meta_key, meta_value, field_with_null )
VALUES ( %d, %s, %s, %s)",
10, $metakey, $metavalue, $foo ) );
}