+1  A: 

When using prepared statements you never have to escape/quote a string parameter for the dbms (parser) manually.
The comment relates to http://docs.php.net/pdo.prepared-statements:

Prepared statements are so useful that they are the only feature that PDO will emulate for drivers that don't support them.
I.e. if the driver doesn't support prepared statements PDO will still expose the prepare statements part of api and "translate" them to sql statements containing the parameters (e.g. INSERT INTO foo (x,y,z) values(1,2,3)). But it will do so transparently, i.e. it will automagically handle the quoting.

VolkerK
A: 

Prepared statements are prepared because you create markers for PDO to insert values, and these values can be named (for example, :accountId, :url) where PDO will find the named marker, or positional (specifically, a question mark (?)) where PDO will insert the values in the order the markers were placed.

eg:

$query = "SELECT user_id FROM users WHERE username = ?";
$statement = $pdo->prepare($query);
$statement->execute(array("John Smith"));

Notice the distinct lack of named parameters (specifically, using a ? instead of :username), and the positional style is used instead. It is purely a personal choice to use one or the other, although I find using named parameters is clearer when debugging.

Anyways. What this means is you do not have to quote if you are using prepared statements, and you do not have to worry about SQL injection when using prepared statements.

Now, what is really happening is PDO is asking the database driver (MySQL, PostgreSQL, MS SQL, Oracle, etc) to prepare the statement, but if the database driver cannot prepare it, PDO will simulate that feature. This where things start to get confusing, but you can safely forget it and just remember to use prepared statements with parameters.

Adrian
How does MySQL **prepare** it?
It parses the statement, finds the places where parameters can be added, prepares the query plan, .... then it returns an identifier to the client. The client can then send the identifier + the data for the parameters and execute the statement.
VolkerK