Fijate que el and 1=1 es una condicion cierta y es evaluada como tal, por lo tanto muestra el contenido de a lo que el id 45 se refiera. Por lo tanto es vulnerable. Hay a veces que solo podras inyectar así, entonces hablamos de una blind SQL Injection, pero no tiene porque ser tu caso.
Podrias probar, por ejemplo, de poner id = -1 (lo que devolvera un conjunto vacío) y hacer un UNION SELECT 1,1,1,......,1 para ver si puedes inyectar otra SQL.
El SQL es estandar "mas o menos", es decir, hay ciertas partes básicas que si que son estandar pero no tienen porque escribirse de la misma forma en diferentes sistemas gestores de bases de datos, y también puedes ser que incorporen cosas añadidas no estandares.
Suerte con la inyección
Podrias probar, por ejemplo, de poner id = -1 (lo que devolvera un conjunto vacío) y hacer un UNION SELECT 1,1,1,......,1 para ver si puedes inyectar otra SQL.
CitarPD: Yo crei que SQL era standart, es decir, la sintaxi.
El SQL es estandar "mas o menos", es decir, hay ciertas partes básicas que si que son estandar pero no tienen porque escribirse de la misma forma en diferentes sistemas gestores de bases de datos, y también puedes ser que incorporen cosas añadidas no estandares.
Suerte con la inyección