Normally you'd make a statement, after which you'd only send different values whenever you carry it out within loops.

But I have seen MVC code in which the claims are now being ready for every call from the update method, for instance. So my real question is - performs this hurt performance? And when so, because when much? Could it be worse or still much better than not planning claims to begin with? Or does PHP and/or MySQL understand it and just prepare it once?

Some databases and application servers do cache prepared claims around the client side and understand that you are attempting to make a statement that was already prepared, and offer the mention of pstmt in the cache. This is common in Java application servers, but might not be so common in PHP.

Planning an argument is unquestionably more costly these days. It takes additional round outings towards the database, so it's only worthwhile, from the performance perspective, if you are likely to be calling exactly the same SQL (with various parms) many, many occasions.

However, there's another aspect beyond performance - security. Prepared claims would be the single best type of defense against SQL Injection attacks - that are incredibly prevalent. Due to this, I'd always employ prepared claims, even when it might be technically more performant to simply skip the prepare step in some instances.

I doubt PHP and/or MySQL are that wise. So, AFAIK, it affects performance, because it makes additional roundtrip towards the database, however i doubt you'll ever observe that.