我对 mysql 很陌生,正在尝试将列中的一个值替换为另一个值。现在我有 2 个输入,可以在此处回显这些输入的文本值以及登录人员的用户名:
<?php
session_start();
include("../php/Session.class.php");
$sess = new Session();
$sess->Init();
$cookie = isset($_COOKIE["session"]);
if($cookie)
{
$cookie = $_COOKIE["session"];
$account = $sess->Verify($cookie);
}
$pass1=$_POST['passwordText']; //name of input
echo $pass1;
$pass=$_POST['oldPass']; //name of input
echo $pass;
echo $account['username'];
然后,我连接到数据库,并尝试将以前的密码设置为用户用户名所在的 $pass1
的值。
$dbh = new mysqli("localhost","username","password","sqlserver");
$checkforpass = "SELECT password FROM accounts WHERE username='".$account['username']."'";
$checkforpass = $dbh->query($checkforpass); //make query
$checkforpass = $checkforpass->fetch_assoc(); //prepare sql
$checkforpass = $checkforpass['password'];
echo $checkforpass;
if($checkforpass==$pass)
{
echo 'they got the password!';
$change = "UPDATE accounts SET password=".$pass1." WHERE username='".$account['username']."'";
//$change = $dbh->query($change);
$dbh->query($change); //make query
$dbh->close();
//change password
}
我没有收到任何错误,但在检查本地数据库时,密码值保持不变。我在这里做错了什么?
最佳答案
我认为它没有被插入/更新,因为您没有在查询中的 varchar
周围使用单引号。
您的查询应该是:
$change = "UPDATE accounts SET password='".$pass1."' WHERE username='".$account['username']."'";
或者
$change = "UPDATE accounts SET password='$pass1' WHERE username='".$account['username']."'";
关于php - Mysql更新没有改变数据表中的值?未进行查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37313635/