अपडेट करें:
वर्डप्रेस 4.4 के बाद से। यह अब , और , और # 15158 टिकट के तरीकों द्वारा समर्थित है insert
, जैसा कि तय किया गया है ।update
replace
delete
wpdb
उस अपडेट के बारे में टिप्पणी करने के लिए @dmsnell को धन्यवाद ।
दूसरी ओर, null
में समर्थन wpdb::prepare()
वर्तमान में के रूप में बंद कर दिया है wontfix टिकट में # 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
में जोड़ा गया था , इसलिए अब वर्कअराउंड की कोई आवश्यकता नहीं है