База данных Wordpress вставляет () и обновление () - использующий Нулевые значения

Wordpress поставлется с wpdb класс, который обрабатывает операции CRUD. Два метода этого класса, которым я интересуюсь, insert() (C в CRUD) и update() (U в CRUD).

Проблема возникает, когда я хочу вставить ПУСТОЙ УКАЗАТЕЛЬ в mysql столбец базы данных - wpdb класс выходит из пустых переменных PHP к пустым строкам. Как я могу сказать Wordpress использовать фактический MySQL NULL вместо строки MySQL?

7
задан demongolem 25 June 2011 в 03:24
поделиться

1 ответ

Если вы хотите, чтобы он был совместим, вам нужно ПОКАЗАТЬ КОЛОНКУ и заранее определить, разрешен ли 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 ) );
}
8
ответ дан 6 December 2019 в 15:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: