0

How can you make one query of this two?? I will insert data into two tables.

 $query = " INSERT INTO dc_mail_users ( i_id_pk, c_user, c_passwd_md5, i_user_active_id_fk, i_user_type_id_fk ) VALUES ( %1%, %2%, %3%, %4%, %5% )"; $query2 = " INSERT INTO dc_mail_user_data ( i_id_ut, c_user_sex, c_user_name, c_user_surname, c_user_url ) VALUES ( %1%, %2%, %3%, %4%, %5% )"; 
0

4 Answers 4

5

You cannot insert into 2 tables with one query.

You would need to use a stored procedure where you can put that inserts.

Sign up to request clarification or add additional context in comments.

Comments

2

What's the purpose of this? Are you trying to insert data into two different tables from one HTML form? I don't know about stored procedures but I use a transaction in similar case like this:

$d = dbSingle::dbLink(); //set autocommit to false mysqli_autocommit($d->getDbc(), FALSE); $query = " INSERT INTO dc_mail_users ( i_id_pk, c_user, c_passwd_md5, i_user_active_id_fk, i_user_type_id_fk ) VALUES ( %1%, %2%, %3%, %4%, %5% )"; $r = $d->sqlQ($query); //get the last inserted id for the second query $last_insert_id = $d->getInsertId(); $query2 = " INSERT INTO dc_mail_user_data ( i_id_ut, c_user_sex, c_user_name, c_user_surname, c_user_url ) VALUES ( %{$last_insert_id}%, %2%, %3%, %4%, %5% //not sure about the syntax, sorry )"; $r2 = $d->sqlQ($query2); //rollback if either one of the queries failed if (!$r || (isset($r2) && !$r2)) { mysqli_rollback($d->getDbc()); } else { //commit if everything worked mysqli_commit($d->getDbc()); //autocommit on mysqli_autocommit($d->getDbc(), TRUE); } 

This assumes i_id_ut in the table dc_mail_user_data is the FK and the i_id_pk is an auto increment field. I have a class called dbSingle that contains the query functions and database connection. Hope it's clear enough to be used with regular mysqli functions.

Comments

1

You can do with trigger or stored procedures but not with simple insert query.

Comments

0
$query = " INSERT INTO dc_mail_users (i_id_pk, c_user, c_passwd_md5, i_user_active_id_fk, i_user_type_id_fk) VALUES (%1%, %2%, %3%, %4%, %5%) "; $query2 = " INSERT INTO dc_mail_user_data (c_user_sex, c_user_name, c_user_surname, c_user_url) VALUES (%1%, %2%, %3%, %4%)"; // start query 1 $dbh = new DB_Mysql_Extended; $dbh->prepare($query)->execute($this->i_id_pk, $this->c_user, $this->c_passwd_md5, $this->i_user_active_id_fk, $this->i_user_type_id_fk); // start query 2 $dbh2 = new DB_Mysql_Extended; $dbh2->prepare($query2)->execute($this->c_user_sex, $this->c_user_name, $this->c_user_surname, $this->c_user_url); 

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.