是否可以使用此结构运行MySQL请求?

时间:2011-08-02 05:58:04

标签: php mysql automation

    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空格上,它就可以了,但是一旦我将它变成一个函数运行它,它就不起作用。

2 个答案:

答案 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