2011-03-07 4 views
7

के साथ मैं MySQLi तैयार कथन में एक इंसर्ट में पैरा को बांधने की कोशिश कर रहा हूं यदि वह चर मौजूद है, अन्यथा शून्य डालें।PHP bind_params शून्य

यह है कि मैं क्या है, लेकिन यह काम नहीं कर रहा:

if (!empty($name)) { 
    $result->bind_param('ss', $name, $url_friendly_name); 
} else { 
    $result->bind_param('ss', null, null); 
} 

if (!empty($description)) { 
    $result->bind_param('s', $description); 
} else { 
    $result->bind_param('s', null); 
} 

किसी को भी ऐसा करने का एक बेहतर तरीका पता है या सिर्फ एक छोटी सी समस्या नहीं है मेरे कोड के साथ। मैं तैयार कथन में प्रत्येक चर के लिए उपर्युक्त कर रहा हूं।

+0

क्या आप वहां एक खाली स्ट्रिंग का उपयोग कर सकते हैं, उदा। ''' ' – alex

+0

क्या आप खाली होने पर क्वेरी से बाहर फ़ील्ड छोड़ने की कोशिश कर रहे हैं? –

+0

@tandu हाँ अगर मैं एक क्षेत्र छोड़ सकता हूं, तो यह भी काम करेगा। क्या आपके पास ऐसा करने का बेहतर तरीका है? – ATLChris

उत्तर

4

bind_param संदर्भ द्वारा काम करता है। इसका मतलब है कि यह एक चर लेता है, फिर उस चर के मान का उपयोग execute में करता है।

null एक चर नहीं है।

एक चर को null पर सेट करने का प्रयास करें और उसके बाद उस चर को बाध्यकारी करें।

(इसके अलावा mysqli के बजाय पीडीओ का उपयोग कर, जहां execute विधि एक सरल सरणी ले जा सकते हैं और आप mysqli का निराला बाध्यकारी कार्यप्रणाली को बायपास कर सकते हैं पर विचार करें।)

1

, ध्यान रखें कि आप दो बार bind_param उपयोग नहीं कर सकते रखें क्योंकि अंतिम कथन पहले की जगह लेगा। बस एक बार bind_param का उपयोग करने के लिए एक रास्ता खोजने का प्रयास करें।

संबंधित मुद्दे