DB Error: mismatch (in a PHP script)

If you get something like the “DB Error: mismatch” message in a PHP script, this is probably caused by a bug in the script. If I get it right, the message means: there is a mismatch between the number of placeholders (e.g. “?” signs) in your database query and the number of parameters given to the query() method.

For instance, if your query is “SELECT * FROM people WHERE honesty>3”, but you mistakenly call it like this:

$dbh-> query( "SELECT * FROM people WHERE honesty>3", $threshold );

Where you probably meant:

$dbh-> query( "SELECT * FROM people WHERE honesty>?", $threshold );

I think this is reported by the DB_Common class (since a certain version).

On the topic:

Advertisements

5 thoughts on “DB Error: mismatch (in a PHP script)

  1. I know, old thread. But for those banging their head against the wall, I always cause this by having a != in the query
    SELECT *
    FROM food
    WHERE calories != ”
    AND menu_date = ?

    The != is trying to get substituted out. Replace with and you should be good.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s