Placeholders in prepared statements can only be replaced with values, not just any string.
The fact is, the database driver parses (should parse) the query at prepare time, leaving markers for the missing values. When you substitute something, it is interpreted as a value. So, in your example, you were executing this:
SELECT name FROM categories WHERE categories.workrelated = "('Y' || 'N')";
which I'm not surprised to notice didn't return any row.
The whole perparing business is intended to:
- ease quoting
- avoid parsing multiple similar queries
In your case, the first reason doesn't apply, and I don't think there is a way to accomplish the second.
--
dakkar - Mobilis in mobile
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.
|