反正这样做更快,代码更少吗?中间

时间:2011-03-18 19:04:50

标签: php sql oop insert

class Useradd {
function insert_user_into_database($user_firstname, $user_lastname, $user_email) {
    $sql = "INSERT INTO user (user_firstname, user_lastname, user_email) 
            VALUES ('$user_firstname', '$user_lastname', '$user_email')";
    $q = mysql_query($sql);
}
}



$user_firstname = mysql_real_escape_string($_POST['firstname']);
$user_lastname = mysql_real_escape_string($_POST['lastname']);
$user_email = mysql_real_escape_string($_POST['email']);


$useradd = new Useradd;
$useradd->insert_user_into_database($user_firstname, $user_lastname, $user_email);

3 个答案:

答案 0 :(得分:5)

在查看上面的代码时,您不应该关注更快的代码和简化的行。

  • 不正确的OOP设计:类不仅仅是函数的包装器
  • 清理应该内化到班级
  • mysql_real_escape_string并不总是清理输入的正确选择
  • 你的方法对结果没有任何作用,这永远不会好。

所以,真的,最好的答案就是说,“你需要为该代码添加很多东西。”

如果有人告诉你最好的节目是最短的,那么他们就是个白痴。如果有人告诉你最长的节目是最好的,那么他们也是个白痴。最好的编程正是它需要做的事情,以及应该发生的事情。尝试将所有内容放入单行或尽可能快地运行会导致很多问题,尤其是当您需要在一个月后维护该代码时。

答案 1 :(得分:1)

您可以将insert_user_into_database函数设置为静态,这样您就不必为了插入新用户而创建Useradd对象的实例:

class Useradd {
    static function insert_user_into_database($user_firstname, $user_lastname, $user_email) {
        ...
    }
}

然后:

Useradd::insert_user_into_database($user_firstname, $user_lastname, $user_email);

答案 2 :(得分:0)

班级必要吗?在这种情况下,声明一个类,实例化它,然后调用一个类方法是没有优势的;只需创建一个普通函数并执行它。