Can I determine if a user has the wrong symmetric encryption key?
I really don't have an answer (other than saying that storing a hash of the password is good as any other way of solving your immediate problem; there are other ways, but they all allow an attacker to run a dictionary attack on the database).

On the other hand, I do have these comments on what you're doing:


If getting decrypted gibberish will really crash your application, well, I suspect that you might want to consider better error handling.  There are reasons other than "the user gave us the wrong password" for getting bad data (the database server might have gotten a hiccup, the encryptor might have used the wrong password when writing the database record, perhaps an attacker might sprinkle random data over your database); I think you might want to have better error reporting than "Memory fault: core dumped"
Your requirement that there be absolutely no ciphertext expansion limits what you can do; it gives problem to most common encryption modes.  In particular:


If we encrypt the same record value twice to two different fields, does those show up as the same encrypted value?  If so, an attacker will be able to realize that they share a common value (even if he doesn't immediately know what that value is).  Common encryption modes handle this by including a randomization value (IV) as a part of the encrypted data; however, you can't explicitly include an IV in the record.
If we write (and encrypt) a record value A, and then later update that record to be a value B, can an attacker who sees both encrypted records deduce the relationship between A and B.  Common encryption modes handle this as using an IV as well; again, that's not available to you.
If we write (and encrypt) a record value A, is an attacker able to modify that record so that when we read it, it decrypts to a value B (where B has some attacker-chosen relationship to A)?  Common encryption modes handle this by either by being an authenticated encryption mode, or by using an explicit MAC -- neither works for you.



Given these potential problems, you probably should think about what are the security requirements, and how you can meet them.