PHP PDO SQL Server Select statement not replacing question marks

Posted by Metropolis on Stack Overflow See other posts from Stack Overflow or by Metropolis
Published on 2010-12-17T21:58:41Z Indexed on 2010/12/24 2:54 UTC
Read the original article Hit count: 391

Filed under:
|
|
|

Awhile ago I wrote a database class which uses PDO in order to connect to SQL Server databases and also to MySQL databases. It has always replaced the question marks fine when using it on the MySQL databases, but for the SQL Server database I had to create a work around which basically replaces the question marks manually. Here is the code for that.

if($this->getPDODriver() == 'odbc' && !empty($values_a) && substr_count($query_s, "?") > 0) {
    $query_s = preg_replace(array_fill(0, substr_count($query_s, "?"), '/\?/'), $values_a, $query_s, 1);
    $values_a = NULL;
}

Now, I understand that this completely defeats the purpose of the question marks and PDO, but it has been working fine for me. What I would like to do now though, is find out why the question marks are not getting replaced in the first place, and remove this workaround.

If I have a select statement like the following

SELECT * FROM database WHERE value = ?

That is what the query looks like when I go to prepare it, but when I display the query results, it is a blank array.

Just remember, this class is working fine with MySQL, and it is working fine with the work around above. So I know it has something to do with the question marks.

© Stack Overflow or respective owner

Related posts about php

Related posts about mysql