Es probable que no te funcione por el tema "slashes" .. osese .. por el caracter de escape que mete Mysql en las BD o si usas magic_quotes_gpc o runtime ...
No funciona por:
1) a tu consulta SQL (al select) le llega para comparar:
Ben\'s Beans y en tu BD tienes Ben's Beans
.. por lo tanto no son iguales.
2) en tu BD guaras:
Ben\'s Beans y a tu consulta SQL llega Ben's Beans o incluso Ben\\'s Beans
El caso que influye las directivas de php:
magic_quotes_gpc
y
magic_quotes_runtime
Segun su estado .. habrá que aplicar funciones como stripslashes() o incluso addslashes() a la cadena que vas a buscar (usar en tu condición "WHERE ...." sql ..
Para saberlo .. te recomiendo que te hagas un phpinfo() a tu servidor y mires el estado de esas directivas ...
Tambien que hagas simples "echo $cadena_que_buscas" antes de atacar tu "SELECT" (consulta) .. y que mires en tu BD como se guarda un nombre del tipo: Ben's Beans .. mm aunque si usas algun administrador de Msyql (phpMyadmin) es porbable "que te engañe" con las \ .. pues es probable que las elimine al mostrate esos datos ..
mas info sobre addslashes() ... stripslashes() y afines:
http://www.php.net/manual/en/function.addslashes.php
(mira los comentarios de los usuarios .. Hablan bastande del tema cadenas con ' ... )
Un saludo,