# How to escape ? in queries

**URL:** <https://www.ruby-forum.com/t/how-to-escape-in-queries/92396>\
**Category:** Rails\
**Created:** [April 19, 2007, 2:34am UTC](https://www.ruby-forum.com/t/how-to-escape-in-queries/92396 "2007-04-19T02:34:20Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Crazy](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/eada6e/32.png) [@Crazy](https://www.ruby-forum.com/u/Crazy)\
**Post date:** [April 19, 2007, 2:34am UTC](https://www.ruby-forum.com/t/how-to-escape-in-queries/92396/1 "2007-04-19T02:34:20Z")

</div>

Hi,

I have a simple table with id and name fields and which has some  
data which includes ? and ‘’ characters. If I try to find the rows  
which have these elements, the query fails with the following error:

irb(main):013:0\* a = Person.find(:all, :conditions =\> [“name = ???”])  
ActiveRecord::PreparedStatementInvalid: wrong number of bind variables  
(0 for 3) in: name = ???  
from /activerecord-1.15.2/lib/active\_record/base.rb:1463:in  
`raise_if_bind_arity_mismatch' from /activerecord-1.15.2/lib/active_record/base.rb:1426:in`replace\_bind\_variables’  
from /activerecord-1.15.2/lib/active\_record/base.rb:1417:in  
`sanitize_sql_array' from /activerecord-1.15.2/lib/active_record/base.rb:1388:in`sanitize\_sql’  
from /activerecord-1.15.2/lib/active\_record/base.rb:1164:in  
`add_conditions!' from /activerecord-1.15.2/lib/active_record/base.rb:1097:in`construct\_finder\_sql’  
from /activerecord-1.15.2/lib/active\_record/base.rb:997:in  
`find_every' from /activerecord-1.15.2/lib/active_record/base.rb:418:in`find’  
from (irb):13  
from /usr/lib/site\_ruby/1.8/rubygems.rb:78

So my question is: is there any way to escape the query ? Or better  
still, can I do the query without SQL (pure ruby) ?

Thanks!

---

<div class="post-metadata">

**Author:** ![Crazy](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/eada6e/32.png) [@Crazy](https://www.ruby-forum.com/u/Crazy)\
**Post date:** [April 19, 2007, 2:58am UTC](https://www.ruby-forum.com/t/how-to-escape-in-queries/92396/2 "2007-04-19T02:58:21Z")

</div>

> Or better still, can I do the query without SQL (pure ruby) ?

There sure is. Try this:

a = Person.find\_by\_name("???")

Andy
