-1

我是 SQLite 和 PHP 的新手,很抱歉这个新手问题。

如果我在这里对值使用固定数字,它不会引发错误,但这会..?

if (isset($_POST['l'])) { 
$query ='INSERT INTO clickmap (x, y, location) ' .
'VALUES (' . $_POST['x'] . ',' . $_POST['y'] . ',' . $_POST['l'] . ') ';

提前致谢。

4

3 回答 3

2

您的串联是错误的,我对此一无所知,您可以试试这个:

if (isset($_POST['l'])) { 
    $query = "INSERT INTO clickmap (x, y, location) VALUES ('".$_POST['x']."', '".$_POST['y']."', '".$_POST['l']."')";
}
于 2012-10-05T13:28:38.553 回答
1

不要将 POST 变量直接放入查询中,这是不安全的(参见:http ://en.wikipedia.org/wiki/SQL_injection )

所以做这样的事情:

if (isset($_POST['l']))
{
    $x = mysql_real_escape_string($_POST['x']);
    $y = mysql_real_escape_string($_POST['y']);
    $l = mysql_real_escape_string($_POST['l']);
    $query = "INSERT INTO `clickmap` (`x`, `y`, `location`) VALUES ('$x', '$y', '$l')";
}
于 2012-10-05T13:29:08.313 回答
0

将您的查询包装成双引号,或将双引号放在您的 $_POST 引用中。$query = "INSERT INTO ...";

于 2012-10-05T13:28:27.387 回答