2017-08-30 88 views
0

請給這些分辨率爲何 它不工作的打印POST方法直接在不工作

$write=mysql_query("INSERT INTO dbtry(name,id) VALUES('$_POST['name']','')");} 

它給了我一個錯誤我的SQL查詢中獲取價值

Parse error: syntax error, unexpected '' (T_ENCAPSED_AND_WHITESPACE), expecting identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING) in C:\xampp\htdocs\test\dbtry.php on line 11

+1

你與報價存在了問題。並與SQL注入以及 – ArtOsi

+1

首先**停止**使用deprected'mysql_ *'API。使用mysqli_ *或PDO – Jens

+1

請不要使用已棄用的mysql_ *函數,並且請勿將輸入變量直接放入sql查詢中 - 這會讓您對sql注入敞開大門。看看mysqli_ *函數或PDO :) – flauntster

回答

0

,可以儲存價值一個變量和

$name=$_POST['name']; 
$write=mysql_query("INSERT INTO dbtry(name,id) VALUES('$name','')"); 

希望它的工作。

0

使用concatenate運算符(。)作爲POST值。

$write=mysql_query("INSERT INTO dbtry(name,id) VALUES('".$_POST['name']."','')"); 
2

爲了防止SQL injection,我會建議做到以下幾點:

$name = filter_var($_POST['name'], FILTER_SANITIZE_STRING); 

if ($stmt = $mysqli->prepare("INSERT INTO dbtry(name,id) VALUES(?, ?)")) { 
    $stmt->bind_param("s", $name); 
    $stmt->bind_param("i", $id); 
    $stmt->execute(); 
    $stmt->close(); 
} 
+0

完美!最後一個答案不使用舊的和不推薦使用的mysql * +1 – Akintunde007

0

變化

$write=mysql_query("INSERT INTO dbtry(name,id) VALUES('$_POST['name']','')"); 

$write = mysql_query(
    "INSERT INTO " . 
    "dbtry (name,id) " . 
    "VALUES (" . 
    "'" . $_POST['name'] . "' " . 
    ",'' " . 
    ")" 
);