從我能告訴你的查詢是錯誤的。
您需要添加要更新的行的ID。你應該在會話中存儲哪些內容。
<?php
if(isset($_POST['submit'])){
$newpassword = $_POST['password'];
if(empty($newpassword)) {
echo '<p>Field Empty!</p>';
} else {
$mysqli->query("UPDATE Users SET password='$newpassword' WHERE ID=?");
echo "Updated Successfully";
}
}
?>
更改我會做,你有一些缺少分號,你需要檢查原始帖子的密碼。閱讀更清潔。
<?php
if(isset($_POST['submit']) && isset($_POST['password'])){
$newpassword = $_POST['password'];
$mysqli->query("UPDATE Users SET password='$newpassword' WHERE ID=?");
echo "Updated Successfully";
}
else {
echo '<p>The password field is not filled in.</p>';
}
?>
我討厭不安全的頁面。這是一個更安全的方法。它可能有錯誤,我沒有測試。
<?php
// configuration
$dbhost = "localhost";
$dbname = "test";
$dbuser = "root";
$dbpass = "admin";
// database connection
$conn = new PDO("mysql:host=$dbhost;dbname=$dbname",$dbuser,$dbpass);
if(isset($_POST['submit']) && isset($_POST['password'])){
// new data
$UserID = $_SESSION['UserID'];
$Password = $_POST['password'];
// query
$sql = "UPDATE Users SET password=? WHERE ID=?";
$q = $conn->prepare($sql);
$q->bindParam(1, $UserID);
$q->bindParam(2, $Password);
$q->execute(array($title,$author,$id));
}
else {
echo '<p>The password field is not filled in.</p>';
}
?>
您不想運行該查詢。 (幾乎?)在更新中始終有一個where子句。此查詢按原樣將所有用戶密碼更新爲提交的密碼。你爲什麼需要'SELECT password FROM users'? – chris85
這不應該起作用,因爲要更新字段,您需要一個id字段或其他唯一字段 –
查看更新語法,https://dev.mysql.com/doc/refman/5.0/en/update.html。 'UPDATE TABLE_NAME SET COLUMN ='VALUE'WHERE COLUMN ='VALUE''。請注意,where子句很重要,即將更新多少行。在你的情況下,我會認爲'userid =?'假設'userid'是唯一的。您也不應以純文本格式存儲密碼。 – chris85