有人可以看看這個,也許看到爲什麼這不是更新我的數據庫?MYSQL post query - not working need advise
它是一種從我的數據庫中提取數據的表單,當我點擊更新按鈕時它應該更新數據庫,但它不是。
有沒有辦法顯示它是否返回錯誤?
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>Beerlist Admin</title>
</head>
<body>
<?php include '../beerlist/config.php'; ?>
<table border="0" width="95%" align="center" cellspacing="0" cellpadding="5">
<tr>
<?php
#///////////////////////////////////
#//////////// ALL BEERS/////////////
#///////////////////////////////////
$sql = "SELECT * FROM bottles ORDER BY name";
$mydata = mysql_query($sql,$con);
if (isset($_POST['update'])){
$UpdateQuery = "UPDATE bottles SET new='$_POST[new]', name='$_POST[name], style='$_POST[style], location='$_POST[location], size='$_POST[size], abv='$_POST[abv], number='$_POST[number], price='$_POST[price]' WHERE name='$_POST[hidden]'";
mysql_query ($UpdateQuery, $con);
};
while($record = mysql_fetch_array($mydata)){
echo "<form action=beerlist_admin.php method=post>";
echo "<td><input size=7 type=text name=new value=\"" . $record['new'] . "\" > ";
echo "<input type=text size=50 name=name value=\"" . $record['name'] . "\" >";
echo "<input type=text size=20 name=style value=\"" . $record['style'] . "\" >";
echo "<input type=text size=20 name=location value=\"" . $record['location'] . "\" >";
echo "<input type=text size=7 name=size value=\"" . $record['size'] . "\" >";
echo "<input type=text size=5 name=abv value=\"" . $record['abv'] . "\" >";
echo "<input type=text size=5 name=number value=\"" . $record['number'] . "\" >";
echo "<input type=text size=7 name=price value=\"" .$record['price'] . " \" >";
echo "<input type=hidden name=hidden value=" . $record['number'] . "\"> <input type=submit name=update value=update></td></tr>";
echo "</form>";
}
echo "</table>"
?>
</body>
</html>
您可以查看錯誤消息的'mysql_error'。考慮到這個代碼對於SQL注入攻擊是非常開放的,任何事情都可能發生在你的數據庫上。我強烈推薦一些關於這個主題的輕量級閱讀:http://php.net/manual/en/security.database.sql-injection.php – David
從你的mysql_ *正確處理錯誤開始。 [請參閱此處的連接錯誤處理示例](http://php.net/manual/en/function.mysql-connect.php)和[這裏是例如查詢錯誤處理。](http://www.php .net/manual/en/function.mysql-query.php)對於UPDATE查詢中的幾乎所有記錄,您還缺少單引號'',這會導致複合詞出錯。 – Prix
你應該把變量放在你的查詢中,如'{$ _POST ['....']}'。 – Sablefoste