2つの問題があります。まず、GeomFromText関数は文字列を受け取るため、次のようになりますGeomFromText('POLYGON((0, 1, 2))')(引用符に注意してください)。次に、POLYGON...テキストは文字列リテラルであるため、個々の部分ではなく、ワイルドカードに置き換える必要があります。クエリは次のようになります。
INSERT INTO areas (name, polygon)
VALUES (?, GeomFromText(?))
次にPOLYGON((?, ?, ?, ?, ?, ?))、ステートメントではなく、アプリケーションで文字列を作成します。PHPには安全な文字列処理があるので、使用することをお勧めしますsprintf('POLYGON((%d, %d, %d, %d, %d, %d))', $var1, $var2, $var3, $var4, $var5, $var6)(sprintfはCでは危険です)。
または、MySQLの空間関数を使用してポイントを生成することもできます。これはあなたがやろうとしていたことだと思いますが、GeomFromTextを介してそれらを渡しません。MySQLの空間関数を使用してポリゴンを作成するには、ドキュメントで次のことを行う必要があることが示されています。
INSERT INTO areas (name, polygon)
VALUES (?, Polygon(LineString(Point(?, ?), Point(?, ?), Point(?, ?))))
MySQL 5.1.35より前では、次のことを行う必要があります。
INSERT INTO areas (name, polygon)
VALUES (?, GeomFromWKB(Polygon(LineString(Point(?, ?), Point(?, ?), Point(?, ?)))))