Cita: Por ese motivo yo esperaría que todos los datos sean tratados como string.
Ese es tu principal error, "esperas" algo de lo que no tienes ni la menor certeza.
Que declares la variable como string, y que en la BD la tengas como VARCHAR no arregla por arte de magia tu consulta de SQL:
Código PHP:
Ver original// MAL: así haces tu
$valor = 'XX01';
$sql = 'SELECT * FROM tabla WHERE campo = ' . $valor;
// produce lo siguiente: SELECT * FROM table WHERE campo = XX01
// BIEN: deberías corregir tu consulta
$valor = 'XX01';
$sql = "SELECT * FROM tabla WHERE campo = '$valor'";
// produce lo siguiente: SELECT * FROM table WHERE campo = 'XX01'
Si analizas tu código jamás pones la comillas al rededor de tu variable: he ahí tu error.