the "->" is simply php's way of seperating objects and methods. Similarly, javascript uses a period to seperate their objects.
Decade, you might have noticed he never actually defined an object. So i'm assuming that in php "sql::query()" would work like:
$foo = new sql;
$foo->query();
I remember reading something about it in the manual, and i don't remember it saying anything like that... but oh well.
Other then the return thing, i think you should shorten your connect function, as storing all of your secure info in the object is not a good idea (plus, you're using to many quotes

)
class sql {
function conn($host, $user, $pass, $db) {
$this->dbh=mysql_connect ($host, $user, $pass) or die ('I cannot connect to the database because: ' . mysql_error());
mysql_select_db ($db);
}
}
I guess you could keep the quotes, i just find them to be a waste of space.
Anywho, if you want a reference for mysql and OOP, there is a tutorial on my site about it (not saying it's a great tutorial, but it's there)