php - Mysql更新没有改变数据表中的值?未进行查询?

标签 php mysql

我对 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/

相关文章:

php - MySQLi CURDATE() 今天和明天 2 小时后?

php - 在 php mysql 中插入和检索图像

mysql - 如何在同一查询中引用生成/别名表?

mysql - 将表存储在同一项目的单独数据库中的优点

mysql - 无法弄清楚为什么此 SQL 代码不执行任何操作

php - 添加 mysql 或 php 触发器以将日期时间格式从 US 更改为 UK 对于任何返回日期时间的查询

javascript - 使用ajax发布变量时找不到Yii类

javascript - 在 HTML 中显示 $.post 的结果

PHP/Javascript : Making (1) in title as unread

mysql - 在这种情况下如何避免 -1