Also...
Classes are usually defined with CapsCase, whilst functions (methods) are camelCase.
Plus, you're mixing your underscore_case with camelCase.
To the class now:
Connect doesn't return a value, or set an instance variable:
$row = mysql_fetch_array($query); // grab the data
$this->user = $row; // set an instance variable
// or, you could have done this:
return $row // return the row to the GrabUserInfo() function
so how is $row defined in GrabUserInfo() ?
Is Connect() the most appropriate method name? It's not actually connecting, is it?
Next, is there any point in replicating $this->property = $row['property'] for each and every column? You could just store the mysql result as a variable:
$user->props->['property']
or iterate with a for loop to set instance variables:
foreach($row as $key => $value){
$this->$$key = $value;
}
Also, it's good practice (standard) to specify your class variables in the head of your class rather than set them in a class method. In many languages this would throw an error!
The method PostComment() is not really a property of user_traits is it? You would be best off having this as a method of another class, perhaps a User class. I know that seems pedantic but that's teh thing with OOP - unless you're clear in your thinking, you may as well go back to procedural / spaghetti code!
I hope you don't take this as a barrage of criticism... you can pick out the technical from the practical and go from there.
Cheers,
Dave