Some attributes are determined by the client, some by the server some by the user .. highly confusing. http://www.php.net/manual/en/function.pdo-getattribute.php http://www.php.net/manual/en/function.pdo-setattribute.php For example PDO::ATTR_CASE is by no means an attribute. Its clearly an option. Where as clearly is an attribute PDO::ATTR_CLIENT_VERSION which is controlled by the users environment and PDO::ATTR_SERVER_VERSION is controlled by some servers environment.