2015-10-25 3 views
-1

Im, использующий 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

Вопрос заключается в том, что вы используете ", чтобы создать строку, и использовать его, чтобы определить переменную массива Вы не можете совместить это Но вы можете сделать это, чтобы объединить строки:

$sql = "INSERT INTO hex (id, x, y) VALUES (NULL, '" . $var["x"] . "', '" . $var["y"] . "')"; 

Примечание: что это не безопасно, так как запрос MySQL инъекции будет очень легко Пожалуйста, попробуйте использовать PDO и параметры Смотрите этот ответ:..

prepared parameterized query with PDO

0

Может быть, ваша проблема вызвана becasuse двойных кавычках.

Попробуйте это:

$sql = "INSERT INTO hex (id, x, y) VALUES (NULL, $var['x'], $var['y'])"; 

Или даже так:

$sql = 'INSERT INTO hex (id, x, y) VALUES (NULL, '.$x.', '.$y.')"; 
Смежные вопросы