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