Egesa Donatius
Egesa Donatius

Reputation: 15

Get id from second table from 2 insert queries

I have two tables(users and subscription) am inserting data to, however, the table subscription gets userid from table users using $sid = mysqli_insert_id($db) now I want to get sid from table two so that i can pass it to the payment gateway. Here is my snippet

 if (isset($_POST['online'])) { 
$_SESSION['lname'] = $db->real_escape_string($_POST['lname']);
$_SESSION['fname'] = $db->real_escape_string($_POST['fname']);
$_SESSION['email'] = $db->real_escape_string($_POST['email']);
$_SESSION['tele'] = $db->real_escape_string($_POST['tele']);
$_SESSION['sex'] = $db->real_escape_string($_POST['sex']);
$_SESSION['address'] = $db->real_escape_string($_POST['address']);
$_SESSION['occupation'] = $db->real_escape_string($_POST['occupation']);
$_SESSION['org'] = $db->real_escape_string($_POST['org']);
$_SESSION['amount'] = $db->real_escape_string($_POST['amount']);



$sql = $db->query("INSERT INTO user (fname, lname, email, tele, sex, occupation, org) 
                          VALUES('".$_SESSION['fname']."', '".$_SESSION['lname']."', 
                          '".$_SESSION['email']."', 
                         '".$_SESSION['tele']."', '".$_SESSION['sex']."', '".$_SESSION['occupation']."', 
                         '".$_SESSION['org']."')");
$sid = mysqli_insert_id($db);

$sql = $db->query("INSERT INTO subscription (userid, amount, event, status, statusmessage) 
                          VALUES('$sid', '".$_SESSION['amount']."','Main Summit', '0', 'Pending Payment by user')");

Upvotes: 0

Views: 44

Answers (1)

Matt S
Matt S

Reputation: 15384

Simply call mysqli_insert_id again:

$sql = $db->query("INSERT INTO user (fname, lname, email, tele, sex, occupation, org) 
                          VALUES('".$_SESSION['fname']."', '".$_SESSION['lname']."', 
                          '".$_SESSION['email']."', 
                         '".$_SESSION['tele']."', '".$_SESSION['sex']."', '".$_SESSION['occupation']."', 
                         '".$_SESSION['org']."')");
$userid = mysqli_insert_id($db);

$sql = $db->query("INSERT INTO subscription (userid, amount, event, status, statusmessage) 
                          VALUES('$userid', '".$_SESSION['amount']."','Main Summit', '0', 'Pending Payment by user')");

$subscriptionid = mysqli_insert_id($db);

I don't know your $db class, but you should use prepared statements instead of concatenating parameters.

Upvotes: 4

Related Questions