我是一個PHP的初學者。我看了一個教程來創建一個修改我的wamp創建的mysql數據庫表的表單。首先複製視頻,但後來從頭開始創建自己的桌面,並試圖升級它。初學者形式與「更新」和「刪除」按鈕
我的添加行工作正常,但更新和刪除沒有。我認爲WHERE
條款不正確,參考reg_id
。
我創建了一個唯一的主鍵,它自動遞增並且不能修改;這是我想在更改時引用(因爲它不能更改)。
if (isset($_POST['update'])){
$UpdateQuery = "UPDATE register SET First_Name='$_POST[first_name]', Last_Name='$_POST[last_name]', Breed='$_POST[breed]', Weight='$_POST[weight]', Age='$_POST[age]', Sex='$_POST[sex]' WHERE '$_POST[reg_id]'='$_POST[reg_id]'";
mysqli_query($con,$UpdateQuery);};
if (isset($_POST['delete'])){
$DeleteQuery = "DELETE FROM register WHERE reg_id='$_POST[reg_id]'";
mysqli_query($con,$DeleteQuery);};
這裏是它的其餘部分在窗體位於:
while($record=mysqli_fetch_array($myData)){
echo "<form action=register.php method=post>";
echo "<tr>";
echo "<td>" . $record['reg_id'] . " </td>";
echo "<td>" . "<input type=text name=first_name value=" . $record['First_Name'] . " </td>";
echo "<td>" . "<input type=text name=last_name value=" . $record['Last_Name'] . " </td>";
echo "<td>" . "<input type=text name=breed value=" . $record['Breed'] . " </td>";
echo "<td>" . "<input type=int name=weight value=" . $record['Weight'] . " </td>";
echo "<td>" . "<input type=int name=age value=" . $record['Age'] . " </td>";
echo "<td>" . "<input type=text name=sex value=" . $record['Sex'] . " </td>";
echo "<td>" . "<input type=submit name=update value=update" . " </td>";
echo "<td>" . "<input type=submit name=delete value=delete" . " </td>";
echo "</tr>";
echo "</form>";
}
請幫我解決這個問題。
現在是一個好時機的習慣得到引用你的輸入屬性值,即。 '... name ='first_name'value ='「。$ record ['First_Name']。」'...'。未引用的屬性值將很快導致您頭痛。另外,你並沒有關閉你的'name = update' /'name = delete'輸入。他們錯過了'/>'。 – Sean
您應該使用預準備語句,這對SQL注入是開放的。你where where子句中缺少你想檢查列的id的列也應該是反引號,而不是引號。 – chris85
你的'reg_id'不在輸入中,所以沒有'$ _POST ['reg_id']'>'echo「」。 $ record ['reg_id']。 「」;' – Sean