我使用javascript ajax将值发布到PHP。
在这种情况下,它是{x: 5, y, 5}
这将创建一个正确的SQL查询,从而导致INSERT。
if (isset($_POST["item"])) {
$var = $_POST["item"];
$x = $var["x"];
$y = $var["y"];
$sql = "INSERT INTO hex (id, x, y) VALUES (NULL, $x, $y)";
}
然而,这根本不起作用。为什么以及如何修复? - 谢谢
if (isset($_POST["item"])) {
$var = $_POST["item"];
$sql = "INSERT INTO hex (id, x, y) VALUES (NULL, $var["x"], $var["y"])";
}
也无效:
if (isset($_POST["item"])) {
$var = $_POST["item"];
$sql = "INSERT INTO hex (id, x, y) VALUES (NULL, '$var["x"]', '$var["y"]')";
}
答案 0 :(得分:0)
问题是你使用“创建一个字符串,然后用它来定义你的数组变量。你不能把它组合起来。但是你可以这样做来组合字符串:
$sql = "INSERT INTO hex (id, x, y) VALUES (NULL, '" . $var["x"] . "', '" . $var["y"] . "')";
注意:这不是一个安全的查询,因为MySQL注入非常简单。请尝试使用PDO和参数。看到这个答案:
答案 1 :(得分:0)
也许你的问题是由双引号引起的。
试试这个:
$sql = "INSERT INTO hex (id, x, y) VALUES (NULL, $var['x'], $var['y'])";
甚至这个:
$sql = 'INSERT INTO hex (id, x, y) VALUES (NULL, '.$x.', '.$y.')";