Подготовленные выражения PHP PDO и привязка значений приводят ошибку недопустимого номера параметра

У меня небольшая проблема с библиотекой PHP PDO и подготовленными операциями. Насколько я могу видеть, подготовленный оператор ниже должен работать, но это не так, вместо этого я получаю: «PDOStatement :: execute (): SQLSTATE [HY093]: Недопустимый номер параметра: количество связанных переменных не совпадает с числом токенов" ,

Мой PHP-код для этого раздела выглядит так:

$sql = 'INSERT INTO '.POLYGON_TABLE.' (user_id, polygon, polygon_type) VALUES (:userId, PolygonFromText(\'POLYGON((:polygonArea))\'), :polygonType)'; $sth = $this->pdo->prepare($sql); $sth->bindValue(':userId', $polygon->getUserId(), \PDO::PARAM_INT); $sth->bindValue(':polygonArea', $polygon->getPolygonAsText(), \PDO::PARAM_STR); $sth->bindValue(':polygonType', $polygon->getPolygonType(), \PDO::PARAM_STR); if($sth->execute()) { return true; } else { return false; } 

Я сделал var_dump $ polygon-> getUserId (), $ polygon-> getPolygonAsText () и $ polygon-> getPolygonType () и получил следующее:

  string(1) "1" string(226) "53.897910476098765 -1.739655277929728, 53.865530797116 -2.080231449804728, 53.67235280490181 -2.006073734960978, 53.68862047002787 -1.621552250585978, 53.89305512284903 -1.539154789648478, 53.897910476098765 -1.739655277929728" string(7) "commute" 

Проблема заключается в $ polygon-> getPolygonAsText () как комментировании этого конкретного вызова bindValue, а PolygonFromText (\ POLYGON ((: polygonArea)) \ ') из оператора SQL заставляет запрос работать.

Теперь я полностью в растерянности. Кто-нибудь знает, что здесь не так? Я не вижу ничего плохого в тексте, содержащемся в $ polygon-> getPolygonAsText (). Я искал высоко и низко для решения этого и провел несколько часов этим вечером, переделывая код, но безрезультатно.

Я даже попробовал предложения в этих двух потоках переполнения стека, но они тоже не работали:

  • Недопустимый номер параметра в подготовленном заявлении PDO
  • PHP PDO подготовил заявления

Любая помощь приветствуется…