Example queries in some tutorials ALWAYS end with:
or die(mysql_error());
I can see why you would would sometimes want to do this, but t
It depends on what you mean by "shouldn't be a problem".
If you mean "well it won't fail", what happens if the database server goes offline?
Only if you mean "It doesn't matter whether it fails or not, the script can keep running without a problem" that you should consider not having the or die
there.
I was thinking that it wouldn't hurt to use it towards the top of your pages where ever you're database connection information would be, Use it when trying to connect to the database only.
But why us it on every query you perform! Obviously if it connected to the database then if you know No other errors should occur then i wouldn't see why you couldn't avoid using it more than Once Per Page!!!
but they even use this for queries that really shouldn't cause a problem
Even the simplest SELECT * FROM FOO
can cause a problem if the network between the web server and the database server falls over. It's good practice because when dealing with external systems such as databases, you really can't ever assume that something is 'safe'.
In production code, you may not wish to use die()
to handle errors - you could perhaps run some custom code to deal with it. At any rate, you should definitely handle the error in one way or another, and die()
is a good way to start.
Avoid that at all cost!
mysql_error
may expose information you don't want to be givenImagine a database of transactions - your customer sends money, so you have to modify two tables (two queries).
First one transfers money from X to Y and succeeds. The second one has to subtract Y from X fails.
You have no way to revert the transaction and the error is not logged. Effectively making user Y happy and X left confuse where the money went...
Use a sensible error handling for queries - either make a class that will handle that for you or use ORM.
The word "shouldn't" is bad here. Queries that shouldn't have a problem can still be affected by external factors, e.g. connection to the database going down.
You don't necessarily need
or die()
But you should have some kind of error handling system. If you don't have one in place yet, I would add it to my queries, even the simple ones.
EDIT: To clarify, by "it" I mean the or die() statement.