2012-05-16 10 views
9

के अंदर LIKE वाइल्डकार्ड का उपयोग करके मैं तैयार कथन के अंदर LIKE का उपयोग करने का प्रयास कर रहा हूं, लेकिन वाइल्डकार्ड% के उपयोग के कारण PHP वाक्यविन्यास त्रुटि के कारण कथन निष्पादित नहीं करेगा।pg_prepare

यहाँ कोड

$query = pg_prepare($conn, "MyStatement", 
    'SELECT "Query" from "MyTable" 
    WHERE "Query" LIKE $1% 
    ORDER BY "MyColumn" DESC;'); 

$result = pg_execute($conn, "MyStatement", array($my_param)); 

बात यह है कि php मुझे एक सिंटैक्स त्रुटि का दावा दूसरी पंक्ति में एक चेतावनी से पता चलता है।

अग्रिम में बहुत बहुत धन्यवाद !!!

+0

क्या सटीक त्रुटि समाधान चर के साथ में "%" पारित करने के लिए है? – zerkms

+2

postgresql से बहुत परिचित नहीं है, लेकिन मेरा अनुमान है कि आपको वास्तविक मूल्य में% को पास करने की आवश्यकता है, बाध्यकारी पर नहीं। सरणी की तरह ($ my_param। '%')। – Corbin

+0

धन्यवाद कॉर्बिन, वास्तव में समाधान आपके द्वारा प्रदान किया गया था :) – danielrvt

उत्तर

10

मेरे पास पीडीओ एडाप्टर का उपयोग कर बाध्यकारी पैरामीटर एक ही समस्या है।

$query = pg_prepare($conn, "MyStatement", 
'SELECT "Query" from "MyTable" 
WHERE "Query" LIKE $1 
ORDER BY "MyColumn" DESC;'); 

$result = pg_execute($conn, "MyStatement", array($my_param."%")); 

आप की जरूरत है

...LIKE '%param%' ... 

तो आपकी क्वेरी होगा::

$result = pg_execute($conn, "MyStatement", array("%".$my_param."%")); 
+0

दाएं। वाक्यविन्यास त्रुटि उद्धरण से है। यह 'LIKE' में बदल जाता है जो '%' की बजाय '%' 'जो भी%' 'में बदल जाता है। तो हाँ, पैरामीटर में जंगली कार्ड डालें, टेम्पलेट नहीं। –

+0

आपके उत्तर दोस्तों के लिए धन्यवाद !!! इसने मेरी बहुत मदद की!!! :) – danielrvt

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

  • कोई संबंधित समस्या नहीं^_^