I have a problem. When I do an insert like so in php:
sql = "INSERT INTO mytable (id, value)
VALUES ('sds83','".$EncryptedString."')";
When I run the following query it sometimes works and sometimes it doesn't. The problem is that sometimes the $EncryptedString contains characters like this: ')') which causes syntax errors. The $EncryptedString contains binary data, how can I go about this issue?
Escape your encrypted string
mysql-real-escape-string
See StripSlashes
Use PDO (or another database layer) that supports prepared statements.
When you use query parameters instead of executing raw SQL, you gain speed improvements (the database only has to plan and optimize for one query) and all the data you write to it's parameters are immediately and completely isolated from the query itself.
It's surprising how many people don't have this in place! Take the initiative and update your code.
You need to escape your
$EncryptedString
. Depending on the type of MySQL connection object/functions you are using, it could be like this: