Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Vorbereitete PHP-PDO-Anweisungen und Wertbindungen geben den Fehler „Ungültige Parameternummer“ zurück

Haben Sie versucht, den gesamten Ausdruck als Bindungswert zu übergeben?

$sql = 'INSERT INTO '.POLYGON_TABLE.' (user_id, polygon, polygon_type) VALUES (:userId,  PolygonFromText(:polygonArea), :polygonType)';


$sth = $this->pdo->prepare($sql);
$area = sprintf("POLYGON((%s))", $polygon->getPolygonAsText()); 
$sth->bindValue(':userId', $polygon->getUserId(), \PDO::PARAM_INT);
$sth->bindValue(':polygonArea', $area, \PDO::PARAM_STR);
$sth->bindValue(':polygonType', $polygon->getPolygonType(), \PDO::PARAM_STR);