2012-10-06 92 views
0

後,舊的數據,我有以下代碼:更新查詢顯示提交

$sql = mysql_query("UPDATE users SET name='$name' WHERE email='$email'") or die(mysql_error()); 
echo "<h4>Your information has been updated</h4><br />"; 
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>"> 
    <p> 
     <label for='name'>Name</label><br /><br /> 
     <input class="input-text required" name="name" type="text" value="<?php echo $row[name]; ?>" /> 
    </p> 
    <p><input type="submit" name="update" value="Update" /></p> 
</form> 

點擊更新後,更新數據庫中的信息,但<?php echo $row['name']; ?>仍顯示舊值。只有刷新頁面後,纔會顯示更新的信息。我可以通過回顯元刷新刷新頁面,但我希望它仍然顯示回顯「您的信息已更新」,如果我將其設置爲刷新,則不會發生這種情況。有沒有解決方法?

+0

難道你可能在'UPDATE'查詢之前獲取'$ row' *?此外,請使用參數化查詢,而不是字符串插值 - 我希望'$ name'和'$ email'至少已經被轉義。最後,爲什麼不使用'$ name'? – 2012-10-06 20:22:34

+0

是的,我在'UPDATE'之前取回了它。我確實逃避了所有的變量......我沒有在這裏顯示所有的代碼。什麼是參數化查詢? – robk27

+0

進行了搜索並找出了有關使用PDO的參數化查詢。會這樣做。感謝您的建議。 – robk27

回答

1

您需要重新查詢數據庫才能重新填充$row或明確將$row變量設置爲您的值(爲了安全,我建議重新填充它)。

或者echo $name,而不是$row[name]

+0

感謝您的答案....工作! – robk27

1

數據庫的更新是不是一個新的選擇數據。

你有2種選擇:

    更新後
  • ,做一個新的選擇數據
  • ,而不是寫行回的形式,寫貼值回
+0

謝謝我決定做一個新的選擇 – robk27