I had a similar problem in a table I built to hold log messages. The apostrophe was being interpreted as syntax of the command instead of what it really was, just part of the text field. It wasn’t pretty, but what I did to workaround it was to change the apostrophe in the text field to another character before writing to the SQL table, then changing it back to an apostrophe when I read and displayed that text field later on. Ugly, but it worked. I was in a hurry and told myself I would look into a better solution later on. Yeah, right.
The other character I used was the one under the ~ on the keyboard. I think it is called the accent. I don’t use MySQL, but I think it uses the accent for things in its syntax too, so that may not work for it. But the accent means nothing to MSSQL, as far as I’ve seen.
system.db.runPrepUpdate("UPDATE Items SET itemName = ?, Donator = ?, Value = ?, StreetNumber = ?, Street = ?, City = ?, Province = ?, PostalCode = ?, PhoneNumber= ?, CellPhone = ?, Fax = ?, Email = ?, Description = ? WHERE EventName = ? AND Year = ? AND idItems = ?", [itemName, donator, value, streetNum, street, city, prov, pCode, phone, cell, fax, email, description, eventName, year, itemNum], 'Auction_System')
The prepared query is smart enough to figure out when to put the apostrophes and escape them and when to use an integer value such as in your WHERE clause.