Güncelleme:
WordPress 4.4'ten beri. Bu artık destekleniyor insert
, update
, replace
ve delete
yöntemleri wpdb
ve bilet # 15158 olarak kapatıldı sabit .
Bu güncelleme hakkında yorum yaptığı için @ dmsnell'e teşekkürler .
Öte yandan, null
destek wpdb::prepare()
şu anda # 12819 biletinde alışkanlık olarak kapalı .
Önceki cevap:
NULL
desteklenmiyor:
Değeri güncellemek için kendi özel SQL'inizi yazmanız gerekecek gibi görünüyor NULL
.
Şu anda NULL
tarafından desteklenmiyor $wpdb->prepare()
, bu giriş vsprintf biçimlendirme işlevi aracılığıyla gerçekleştiriliyor .
Bu açık Trac biletlerine göz atın:
Bu biletler yaklaşık 4 yaşında, bu yüzden çekirdek ;-) tarafından desteklenene kadar nefesimi tutmayacağım.
@S_ha_dum önerdiği gibi kaynağa bir göz atmalısınız.
Olası bir geçici çözüm:
Maceracıysanız, query
filtreyle aşağıdakileri deneyebilirsiniz :
// 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' );
nerede
/**
* Replace the 'NULL' string with NULL
*
* @param string $query
* @return string $query
*/
function wpse_143405_query( $query )
{
return str_ireplace( "'NULL'", "NULL", $query );
}
Bunun yerine 'NULL'
değiştirmek yerine daha benzersiz bir dize kullanmak isteyebilirsiniz '###NULL###'
.
NULL
eklendi , bu nedenle artık bir geçici çözüme gerek yok