Оновлення:
Оскільки WordPress 4.4. це тепер підтримується insert
, update
, replace
і delete
методи wpdb
і квиток # 15158 був закритий , як фіксований .
Дякуємо @dmsnell за коментар щодо цього оновлення.
З іншого боку, null
підтримка в wpdb::prepare()
на даний момент закрита як параметр в квитку № 12819 .
Попередня відповідь:
NULL
Не підтримується:
Схоже, вам доведеться написати власний спеціальний SQL, щоб оновити значення NULL
.
В даний час NULL
не підтримується $wpdb->prepare()
, що приймає вхід через функцію форматування vsprintf .
Ознайомтеся з цими відкритими квитками Trac:
Цим квиткам близько 4 років, тому я б не затримував дихання, поки це не підтримає ядро ;-)
Слід поглянути на джерело, як запропонував @s_ha_dum.
Можливе вирішення:
Якщо у вас є пригоди, ви можете спробувати наступне з query
фільтром:
// Add a filter to replace the 'NULL' string with NULL
add_filter( 'query', 'wpse_143405_query' );
global $wpdb;
$wpdb->update(
'table',
array(
'status' => 'NULL',
),
array( 'id' => 1 )
);
// Remove the filter again:
remove_filter( 'query', 'wpse_143405_query' );
де
/**
* Replace the 'NULL' string with NULL
*
* @param string $query
* @return string $query
*/
function wpse_143405_query( $query )
{
return str_ireplace( "'NULL'", "NULL", $query );
}
Можливо, ви хочете використовувати більш унікальний рядок, ніж 'NULL'
замінити, можливо, '###NULL###'
замість цього.
NULL
була додана в r34737 , тому більше немає потреби в