gpt4 book ai didi

php - 从 PHP 变量更新数据库数据

转载 作者:行者123 更新时间:2023-11-29 23:43:36 24 4
gpt4 key购买 nike

我在 SQL 语句中遇到变量问题。我有一个表格,用户可以在其中更新他的个人资料。表单重定向到 action.php?action=settings

当我尝试不使用 $variables 时,没有问题!但问题是,我有很多这样的查询,但不是为了更新。

function change_user_data($trainer) {
require("database.php");

try {
$results = $db->query("UPDATE trainer SET email='$email', status='$status', password='$password' WHERE name='$trainer'");
} catch (Exception $e) {
echo "Data could not be changed!";
exit;
}
}

这是我的action.php

if ($action == "settings")  {
$email = $_POST['email'];
$status = $_POST['status'];
$password = $_POST['password'];

change_user_data($trainer);
}

当我echo那些$variables时,它们会被显示,因此它们不为空。但是这个查询更新了我的表,但没有数据,所以之后一切都是空的。

最佳答案

我认为问题在于变量范围。

除了全局变量或其他变量之外,在函数外部定义的变量不能在函数中使用。

你有两种方法。

首先。如果change_user_data函数在action.php文件中,添加“global $email, $status, $password”,如下所示:

function change_user_data($trainer) {

global $email, $status, $password;

require("database.php");

try {
$results = $db->query("UPDATE trainer SET email='$email', status='$status', password='$password' WHERE name='$trainer'");
} catch (Exception $e) {
echo "Data could not be changed!";
exit;
}
}

或者第二。将电子邮件、状态、密码数据传递给函数。然后就可以使用它了。

请查看本手册:

http://php.net/manual/en/language.variables.scope.php

关于php - 从 PHP 变量更新数据库数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26054415/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com