gpt4 book ai didi

php - 是否可以使用这种结构运行 MySQL 请求?

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

    include("connect.php");
$username = mysql_real_escape_string($_REQUEST[username]);


function updateData($key){
$field = "$$key";
if($field == "") {
} else {
$sql= "UPDATE users SET $key = '$field' WHERE username ='$username'";
mysql_query ( $sql , $conexion );
}
}

updateData('password');
updateData('firstname');

我想要做的是让这个 PHP 文件自动识别字段,并且在输入字段值为空时不保存它们。

如果我手动将字段名称放在 $key 空格上,它可以工作,但是一旦我将其转换为函数并运行它,它就不起作用。

最佳答案

不要这样编写代码。

  • 对于初学者来说,它不可读 - 它使得维护代码的人必须找到这个函数来弄清楚正在使用的数据来自哪里。

  • 其次,您将遇到变量作用域的问题 - 在函数内部,除非您使用 global 关键字引用它们以将它们纳入作用域,否则不会定义任何变量。

相反,请像这样编写函数:

function updateData($username, $key, $value){
if($key != "" && $value != "") {
$sql = "UPDATE users SET $key = '$value' WHERE username ='$username'";
mysql_query($sql, $conexion);
}
}

并传入相关值;这就是函数参数的设计目的。您可能还需要考虑在插值之前转义参数的内容。

关于php - 是否可以使用这种结构运行 MySQL 请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6907834/

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