Buenas,
No has entendido bien el or die, jejeje... No es un invento, es una operación lógica como otra cualquiera.
A or B
Si A se evalúa a true, ya no evalúa B. Si A se evalúa a false, entonces sigue con la parte de B. Si tú pones esto:
Lo que estás haciendo es que tu A es mysql_query() y tu B es die(), con una operación lógica or en medio. Qué hace esto:
- Si mysql_query se ejecuta correctamente, devuelve algo que es distinto de false y ya no evalúa la parte B, porque el or ya resulta true. Sólo ejecutas el query.
- Si mysql_query da algún error, entonces devuelve false. Como ha devuelto false, PHP tiene que seguir evaluando la operación lógica, para ver si da false o true, por lo que ejecuta la parte B. Y qué tienes en la parte B? Un die(). Luego mata el proceso, mostrando el mensaje que le pongas.
Esto se podría traducir así:
Para que el error lo muestre en la página, pero no finalice la ejecución del script tendrías que hacer lo siguiente:
O, lo que es lo mismo:
La gente utiliza tanto eso junto que le parece que es un invento de PHP, pero es tan simple como eso que he explicado. No es ninguna panacea y se puede usar como se quiera. De hecho, puedes hacer algo parecido con el AND, pero con un detalle. El and normal en PHP se pone &&, esto evalúa todas las opciones, si utilizas & deja de evaluar cuando encuentra un false. Por ejemplo:
Esto podría dar un error no controlado, ya que si no está declarada $variable, la primera parte da false, pero la segunda te da error de PHP, porque estás intentando acceder a $variable y no existe. Sin embargo, si haces así:
Nunca te va a dar error, porque si $variable no está declara, la primera comprobación da false y, directamente, no evalúa la segunda, por lo que estás a salvo.
Consejillos y detallitos que no suelen aparecer en los manuales.
Un saludo.