Hi!
zeig doch bitte, was du genau in deinem PDO Objekt stehen hast.
Naja, ein var_dump()-Abzug bringt keine Erkenntnisse. Ein PDO-Objekt hält sich sehr bedeckt:
object(PDO)#1 (0) { }
Aber mein Testcode zum Nachvollziehen des Falles im Ausgangsposting sah so aus:
<?php
$dbh = new PDO('mysql:host=localhost;dbname=test', 'test', 'test');
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
$stmt = $dbh->prepare("SET Geburtsdatum = STR_TO_DATE (:Geburtsdatum, '%e.%c.%Y')");
$stmt->bindValue(':Geburtsdatum', '13.2.2010');
$stmt->execute();
Das ergab im ersten Anlauf:
Warning: PDOStatement::execute(): SQLSTATE[HY000]: General error: 1193 Unknown system variable 'Geburtsdatum' in ...
Nach dem Hinzufügen des @ ergab sich
Warning: PDOStatement::execute(): SQLSTATE[42000]: Syntax error or access violation: 1305 FUNCTION test.STR_TO_DATE does not exist in ...
Nach dem Entfernen des Leerzeichens löste sich das Problem in Wohlgefallen auf. Wenn der OP ein anderes hat - und das kann gut sein, weil seine Fehlermeldung anders lautete - muss er sich nochmal konkret äußern.
Lo!