Patrick Dinsmore
Patrick Dinsmore

Reputation: 35

how to use 2 inserts in the same record PHP SQL

I am using the below code to grab a users ID from another table and creating a new record in this table. in the same row there is a field called action and I would like to insert either 'Log-In' or 'Log-Out' in this field for the same record.

my question is im not sure how to incorporate it with the code below without the database creating a new blank line

try{
    // check for user ID in sessions table and apply to new session_log record

    $sql = "INSERT INTO session_logs (USER_ID, first, last, email) SELECT USER_ID, first, last, email FROM sessions WHERE email=:email";

    $stmt = $pdo->prepare($sql);

    // Bind parameters to statement
        $stmt->bindParam(':email', $_REQUEST['email']);


    // Execute the prepared statement
    $stmt->execute();
} catch(PDOException $e){
    die("ERROR: Could not able to execute $sql. " . $e->getMessage());
}

database

Upvotes: 1

Views: 42

Answers (1)

Wesley Smith
Wesley Smith

Reputation: 19571

Unfortunately, Table and Column names CANNOT be replaced by parameters in PDO so you cant just bind the SELECT column as a value or similar, however, you can manipulate the string yourself to add in the required value like so:

$action = 'Log-In'; // if you get this value from user input in any way, be sure to sanitize it with something like `mysqli_real_escape_string`

$sql = "INSERT INTO session_logs (USER_ID, first, last, email, action) SELECT USER_ID, first, last, email, '$action' FROM sessions WHERE email=:email";

Upvotes: 2

Related Questions