2014-01-17 25 views
-2
if(isset($_POST['name'])) 
{ 
$productID = $_POST['pid']; 
$cat_id = $_POST['cat_id']; 
$name = $_POST['name']; 
$picture = $_POST['picture']; 
$description = $_POST['description']; 
$me_level = $_POST['me_level']; 
$pe_level = $_POST['pe_level']; 
$runs = $_POST['runs']; 
$copy = $_POST['copy']; 
$stock_level = $_POST['stock_level']; 
$price = $_POST['price']; 

//INSERT 
$query2 = "UPDATE products SET cat_id =' $cat_id', name =' $name', picture =' $picture', description =' $description', me_level =' $me_level', pe_level =' $pe_level', run =' $runs', copy =' $copy', stock_level =' $stock_level', price =' $price' WHERE serial=$productID"; 
$result = mysql_query($query2); 

if($result){ 
echo '<div class="alert alert-success"> 
<button type="button" class="close" data-dismiss="alert">x</button> 
<strong>Success!</strong> Product has been updated. 
</div>'; 
} 
else{ 
    echo "<div class='alert alert-error'> 
<button type='button' class='close' data-dismiss='alert'>x</button> 
<strong>Error!</strong> failed again ".$productID." 
</div>"; 
} 
}; 

我已經插入了一個工作表 - 工作正常 - 但我無法正常工作。用PHP不能正常工作更新MySQL

+2

怎麼了您的列數據中的所有前導空格?你從數據庫中得到什麼錯誤(請搜索如何獲取)? – Mat

+1

如果您使用的是mysql_ *函數,而不是mysqli或pdo,請不要像這樣插入$ _Posts ...使用「$ yourpost = mysql_real_escape_string($ _ POST [yourPost]);」 –

+0

不要說某些「不起作用」,你應該更精確並描述1)你想要做什麼2)什麼具體失敗,3)你試圖解決它。 – slhck

回答

1

Here WHERE serial=$productID。它應該是​​3210

+0

如果'$ productID'是一個ineger –

+0

得到的。 - 無論是整數還是整數都是單引號是安全的做法不。 –

+0

@ Alireza Fallah,那麼他的'$ productID'就是從... –

0

查詢更改爲:

$query2 = "UPDATE products SET cat_id ='". $cat_id ."', name ='". $name ."', picture ='". $picture ."', description ='". $description. "', me_level ='". $me_level ."', pe_level ='". $pe_level ."', run ='". $runs ."', copy ='". $copy ."', stock_level ='". $stock_level ."', price ='". $price ."' WHERE serial= '". $productID. "'"; 
+0

它有什麼不同? –

0

使用此查詢

$query2 = "UPDATE products SET cat_id ='$cat_id', name ='$name', 
picture ='$picture', description ='$description', 
me_level ='$me_level', pe_level ='$pe_level', run ='$runs', 
copy ='$copy', stock_level ='$stock_level', price ='$price' 
WHERE `serial`=$productID"; 

字段名serial被引述(`)。這是需要的,因爲「serial」是MySQL中的一個關鍵字。