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:

Subversion / Apache griefs: can’t commit, MERGE failed

Installed Subversion. Configured Apache to run as a Subversion server. Seems to work. I even tried some WebDAV applications (davfs) on it. Work. Not perfectly (some strange errors), but it does work.

Until I tried to checkout, modify and commit with SVN itself:

svn: Commit failed (details follow):
svn: MERGE request failed on '/'
svn: Can't open directory '/home/ivan/bsite/svn-repo/db/transactions/0-1.txn/transactions': No such file or directory

No matter what I tried SVN can’t commit into a repository without an error.

Turns out this problem is caused by Apache and Subversion being compiled against different versions of the APR libraries. I got it fixed by rebuilding apache and subversion from their fresh sources.

Thank you, Christopher Ness! Your post helped me a lot.