如何在php中使用按钮更新mysql数据库

如何在php中使用按钮更新mysql数据库,php,mysql,Php,Mysql,下午好,提前感谢您提供的任何帮助。 我试图通过单击按钮为我的登录系统创建一个调整角色。。i、 e提升为管理员,但我不能为我的生活得到这个工作 我尝试了一些新的php教程,并在屏幕上显示了我的表格,但遗憾的是,按钮似乎没有更新任何内容 我已经添加了我的代码,希望这对我有所帮助,因为我有点困惑。如果这能让事情变得更简单,我不介意失去Symfony 提前谢谢 PHP代码: $userId = ['id']; $role = ['role_id']; switch (strtolower($role)

下午好,提前感谢您提供的任何帮助。 我试图通过单击按钮为我的登录系统创建一个调整角色。。i、 e提升为管理员,但我不能为我的生活得到这个工作

我尝试了一些新的php教程,并在屏幕上显示了我的表格,但遗憾的是,按钮似乎没有更新任何内容

我已经添加了我的代码,希望这对我有所帮助,因为我有点困惑。如果这能让事情变得更简单,我不介意失去Symfony

提前谢谢

PHP代码:

$userId = ['id'];
$role = ['role_id'];

switch (strtolower($role)) {
  case 'promote':
    promote($userId);
    $session - > getFlashBag() - > add('success', "Promoted to Admin!");
  case 'demote':
    demote($userId);
    $session - > getFlashBag() - > add('success', "Demoted from Admin!");
}
header('Location: /admin.php');
exit();
JavaScript:

function getAllUsers() {
    global $db;

    try {
        $query = "SELECT * FROM users";
        $stmt = $db->prepare($query);
        $stmt->execute();
        return $stmt->fetchAll(PDO::FETCH_ASSOC);

    } catch (\Exception $e) {
        throw $e;
    }
}

function promote($userId) {
    global $db;

    try {
        $query = "UPDATE users SET role_id=1 WHERE id = ?";
        $stmt = $db->prepare($query);
        $stmt->bindparam(1,$userId);
        $stmt->execute();
    } catch (\Exception $e) {
        throw $e;
    }
}
function demote($userId) {
    global $db;

    try {
        $query = "UPDATE users SET role_id=2 WHERE id = ?";
        $stmt = $db->prepare($query);
        $stmt->bindparam(1,$userId);
        $stmt->execute();
    } catch (\Exception $e) {
        throw $e;
    }
}
function superuser($user_id) {
    global $db;

    try {
        $query = "UPDATE users SET role_id=3 WHERE id = ?";
        $stmt = $db->prepare($query);
        $stmt->bindparam(1,$user_id);
        $stmt->execute();
    } catch (\Exception $e) {
        throw $e;
    }
}

function request() {
    return \Symfony\component\HttpFoundaton\Request::createFromGlobals();
}
HTML:


管理
使用者
用户名
登记
升/降

祝贺您使该函数工作(如果它们工作的话)。可能不会

此函数无法工作,因为bindParam需要1个参数,但您发送了2个参数

除此之外,如果每次都要创建新函数,则不需要函数,只需创建一个普通查询并更新表即可

使用函数意味着它可以节省您编写更多代码的时间,用更少的代码做更多的工作

因此,在您的情况下,函数应如下所示:

$userId = ['id'];
$role = ['role_id'];

function demote($userId) {
    global $db;

    try {
        $query = "UPDATE users SET role_id = ? WHERE id = ?";
        $stmt = $db->prepare($query);
        $stmt->bindparam(1,$userId);
        $stmt->bindparam(2,$role);
        $stmt->execute();
    } catch (\Exception $e) {
        throw $e;
    }
}
在我的情况下,如果没有bindparams,应该是这样的:

function update($sql, $params) {
    $stmt = $pdo->prepare($sql);
    $stmt->execute($params);
    return $stmt; 
}
和usaqe:

$sql = "UPDATE users SET role_id = ? WHERE id = ?";
update($sql, array($role, $userId));
注意: 我不使用symfony


查看您的函数和我的函数之间的差异:

请不要发布包含PHP的代码片段。它的CSS部分也有JS代码抱歉。。我如何发布所有的PHP?你的代码从一开始就没有什么意义<代码>$role=['role_id'];交换机(strtolower($role)){-您制作了
$role
数组,因此在数组上调用
strtolower
是错误的,在数组上使用
开关也没有什么意义。谢谢您的帮助:),我会在回家后试一试,看看这是否解决了我的问题。谢谢您的时间:)@SteveMeadows它会有正确的设置祝您好运:)a如果有效,请接受正确答案:)
$sql = "UPDATE users SET role_id = ? WHERE id = ?";
update($sql, array($role, $userId));