Most databases use a single quote as a way to mark what text is to be inserted into the table column. Because of this, if you use a single quote (or apostrophe) within the text, the database is going to assume that you are ending your text block. Then the database comes across ill-formatted syntax (the text after the second single quote) and chokes. Here is an example:
SELECT * FROM table WHERE column='Brett's Text';
The database sees "SELECT * FROM table WHERE column='Brett'" as the query followed not by a semicolon (😉 but by "s Text';", and has no idea what to do.
In short, use PHP's addslashes() function as recommended by Rich Alloway or simply escape the single quote yourself like saurabh suggested.