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