Cita: Por lo tanto, las variables las recibe bien pero incomprensiblemente me dice que no puedo meter el parámetro 'left'
Regla número 1 de programación en cualquier lenguaje, así como en el lenguaje de consultas:
Nunca jamás se usan palabras reservadas como nombres de objetos. Jamás. Ni en sueños. No se hace...
Estás usando LEFT, que es el nombre de una función propia de MySQL, y eso te dará error. Si no te lo dio antes puede ser por causa de configuraciones de servidor (tal vez), pero no se hace.
Como consejo de desarrollador en BBDD, te recomiendo que
jamás uses palabras en simples en inglés para los objetos tales como tablas, columnas, indices, etc., porque eventualmente chocarás con problemas de este tipo. Siempre que debas hacerlo (por requisitos del caso), pon esos nombres entre acentos agudos (`), los que no deben ser confundidos con apostrofos ('). Pero es preferible evitarlo, ya que en alguna ocasión te los olvidarás y empezarán otra vez los problemas.
Las buenas prácticas determinan que los nombres de campos deben ser escritos con prefijos o sifijos que indiquen la tabla propietaria. Eso evita desde el inicio problemas de esta clase.