0

我正在将我的代码切换到 PDO 以提高安全性。我的插入一直有效,直到我添加了一个创建空间数据的特殊列。请参阅下面的标准插件,以及下面的第 2 个不工作的插件。

$sql = "INSERT INTO sites_tbl (sitename, the_geom) VALUES ('$_POST[sitename]', st_geomfromtext('POINT($geomstring)',27700))";

geomstring = 格式为 000000 000000 的数字

使用 PDO 相同的插入看起来像(下)如果我只想插入站点名称,但当我执行 the_geom 时不行。值 325123 215432 最终将是一个变量,但现在我正在测试这个列表。

  $stmt5 = $conn ->prepare(
"INSERT INTO sites_tbl (sitename, river_id, group_id, accepted_site, the_geom, bmwp_threshold) VALUES (?, ?, ?, ?, ?, ?)");

$stmt5->bindParam(1, $sitename);
$stmt5->bindParam(2, $river_id);
$stmt5->bindParam(3, $group_id);
$stmt5->bindParam(4, $accepted_site);
$stmt5->bindParam(5, $geomstring3);
$stmt5->bindParam(6, $bmwp_threshold);

$geomstring2 = "'POINT(635230 352120)'";
$geomstring3 = st_geomfromtext($geomstring2, 27700);
4

1 回答 1

1

您不能 使用 准备好的 语句
绑定
任意
SQL 部分


但仅限字符串
或数字
文字

$geomstring4 = "'POINT(325123 215432)'";

$stmt5 = $conn ->prepare(
   "INSERT INTO sites_tbl (sitename, the_geom) VALUES (?, st_geomfromtext(?,27700)))");
$stmt5->bindParam(1, $sitename);

$stmt5->bindParam(2, $geomstring4);
于 2013-08-02T09:21:21.800 回答