在php中创建插入函数

时间:2015-05-12 03:54:30

标签: php sql function

你好,所以我的数据库中有一个日志表,并且在每个用户操作中都有登录,注销,编辑,删除,创建,我希望它被记录下来。以下是我在每个操作中的当前代码:

    $action = "Log in"; //if user log in
    $query = "INSERT INTO tbllogs 
            (logorigin, 
             logaction, 
             loguser, 
             logdate, 
             logoutcome) 
              VALUES
            (:origin, 
             :action, 
             :user, 
             :dt, 
             :outcome)";

              $stmt = $dbc->prepare($query);
              $stmt->bindParam(':origin', $ip);
              $stmt->bindParam(':action', $action);
              $stmt->bindParam(':user', $_SESSION['id']);
              $stmt->bindParam(':dt', $dateTime);
              $stmt->bindParam(':outcome', $outcome);
              $stmt->execute();

我想要做的不是在每个用户操作中重复此代码,我想创建一个这样做的函数。但我的问题是,我在我的$action变量中使用了不同的值,例如,如果用户将登录,$action = "Log in",如果用户退出,$action = "Log out"。我怎么能做到这一点?谢谢!

2 个答案:

答案 0 :(得分:2)

您可以执行以下操作:

function logData($action, $values_to_be_saved) {

    if ($action == 'Log in') {
        //Query to save values
    }
}

你可以这样称呼:

$action = 'Log in'; // Any action you want to call
$values_to_be_saved // Array containing values to be saved like origin, action, user, dt, outcome
logData($action, $values_to_be_saved);

或者您可以使用开关盒。

答案 1 :(得分:1)

在文件中创建以下函数,并将其包含在要记录活动的每个页面上。然后使用变量调用函数,如下所示:

logging('Log In',$ip,$outcome);

function logging($action=null,$ip,$outcome){
    $query = "INSERT INTO tbllogs (logOrigin, logAction, logUser, logDate, logOutcome) VALUES (:origin, :action, :user, :dt, :outcome)";
              $stmt = $dbc->prepare($query);
              $stmt->bindParam(':origin', $ip);
              $stmt->bindParam(':action', $action);
              $stmt->bindParam(':user', $_SESSION['id']);
              $stmt->bindParam(':dt', $dateTime);
              $stmt->bindParam(':outcome', $outcome);
              $stmt->execute();
}

希望它有所帮助。