Good question. Application security needs to be layered on top of a strong encryption strategy. I could talk about both of these topics all day, but I'll just make a few key points. First, web applications absolutely must filter all input coming from the browser. SQL injection exploits rely on the attacker sending funky data to the application. Filtering will help prevent that. Second, web applications should use some sort of prepared statement to execute queries; avoid creating raw SQL queries by concatenating user input into SQL.
Finally, watch out for encryption products that automatically decrypt data for "authorized" users. If an attacker discovers a vulnerability in the web application that allows him to pull data directly from the database, then the encryption may prove useless since the attacker's queries will look like they're coming from the authorized web application. The encryption solution will happily decrypt the data and hand it over. I prefer to set up database encryption so that it offers another layer of defense against web-based attacks.