Ich kenne jetzt PHP nicht, aber vielleicht kannst du die Prozedur ja mit Parametermarkern (Prepared Statement) aufrufen. Dann stellt sich das Problem von Sonderzeichen nicht, da der Parameter-Wert ja dann nicht Bestandteil des SQL's ist.

Ansonsten ist immer zu beachten, dass einfachen Hochkomma in Textkonstanten verdoppelt werden müssen.
Ggf. (siehe Birgitta's Hinweis) ist bei Konstanten Parametern ein CAST erforderlich:
... cast('Text' as char(30)) ...

Zeichen kleiner Blank werden in SQL auch häufig missverstanden. In diesen Fällen ist ggf. in Hex (X'....') umzuwandeln, wobei das ja die Codewandlung noch selber gemacht werdn müssen.