2012-10-05 19 views
-1

我是SQLite和PHP的新手,所以很抱歉關於這個新手問題。將變量惰性化到SQLite查詢中

如果我在這裏使用固定數值的值,它不會拋出錯誤,但是這樣做..?

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

在此先感謝。

+0

有什麼錯誤?這些變量的值是什麼? – Stijn

+0

以及如果您使用您的後變量作爲$ _POST [「x」]而不是$ _POST ['x'] – kakuki

回答

2

你串連錯了,我無法理解的是什麼,你可以試試這個:

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

是的,你說的是對的,我在那裏有一點意大利麪條。太感謝了。 – Alchemy

0

把你的查詢換成雙引號,或者在你的$ _POST引用中加雙引號。 $query = "INSERT INTO ...";

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')"; 
} 
+1

你在哪看到'mysql'? –