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
空格上,它就可以了,但是一旦我将它变成一个函数运行它,它就不起作用。
答案 0 :(得分:3)
不要写这样的代码。
对于初学者来说,它是不可读的 - 它使得维护代码的人必须找到这个函数来找出所用数据的来源。
其次,您将遇到变量范围的问题 - 在函数内部,除非您使用global
关键字引用它们,否则不会定义任何变量,以使它们进入范围。
相反,写下你的函数:
function updateData($username, $key, $value){
if($key != "" && $value != "") {
$sql = "UPDATE users SET $key = '$value' WHERE username ='$username'";
mysql_query($sql, $conexion);
}
}
并传递相关值;这就是为什么设计函数参数。您可能还想在插入参数之前考虑转义参数的内容。
答案 1 :(得分:0)
我认为问题是变量$username
,$sql
,$conexion
无法在此函数中识别
查看此链接variables scope