I’m beginning to see that the root of his problem was that one of his parameters was an array and there is no place holder for inserting an array (might be a nice enhancement, don’t you think? “%as” or “%s[]” for an array of strings, carried in the array of parameters as a nested array.  The other alternative was to recognize this and do the implode to turn the nested array into a string external to db_placeholders.

 

Warren Vail

 


From: support-bounces@drupal.org [mailto:support-bounces@drupal.org] On Behalf Of nan wich
Sent: Monday, April 11, 2011 5:31 AM
To: support@drupal.org
Subject: Re: [support] Place holders in SQL query

 

This is exacty what db_placeholders() is for. It takes an array and build the correct number of %s fields (or %d depending on the type parameter) for inserting into your IN clause.
 

Nancy

 

Injustice anywhere is a threat to justice everywhere. -- Dr. Martin L. King, Jr.

 

 


From: Austin Einter <austin.einter@gmail.com>
To: support@drupal.org
Sent: Sun, April 10, 2011 8:55:16 PM
Subject: [support] Place holders in SQL query

1.

When we do a SQL query, if we want to pass value to query, we make use %d for integers or %s for strings.

Similarly do we have any place holders for arrays. 

 

 

2.

I am facing a below typical problem, can somebody tell me what should I do?

 

Below query works fine.

SELECT skillid FROM {resubmt_skills}  WHERE resubmt_skills.skillname IN ('PHP', 'HTML', 'SQL')  

 

But in above query search string  'PHP', 'HTML', 'SQL' is hard coded.

I want to make the query generic.

 

Lets say in custom search form, user entered search string PHP, Telecom, HTML,, so how can I write a generic query.

 

Thanks

Austin