简体   繁体   中英

How to insert or update foreign key values using PHP

I did 2 tables in mysql database

  1. user_details
  2. bank_details

In user_details am create following entity

  1. user_id as a Primary Key
  2. username
  3. password
  4. address

In bank_details am create following entity

  1. id as a Primary Key
  2. user_id as a Foreign Key
  3. bank_name
  4. ac_no

First am insert user details using following code

<?php
$un = $_POST['un'];
$ps = $_POST['ps'];
$adr = $_POST['adr'];

$sql = mysql_query("insert into user_details username='$un', password='$ps', address='$adr'");
?>

Now i need to insert Bank Details in bank_details table

<?php
$bn = $_POST['bn'];
$ac_no = $_POST['ac'];
$sql = mysql_query("insert into bank_details user_id= ?? bank_name='$bn', ac_no='$ac_no'");
?>

How can i define that foreign key values here ?

Your query omits the MYSQL SET keyword. Anyway, you can do this, as per your code convention:

<?php
$mysql = mysql_connect([...]

$un = mysql_real_escape_string($_POST['un'], $mysql);
$ps = mysql_real_escape_string($_POST['ps'], $mysql);
$adr = mysql_real_escape_string($_POST['adr'], $mysql);

$sql = mysql_query("insert into user_details SET username='$un', password='$ps', address='$adr'", $mysql);

if(!$sql)
{
  // something went wrong with the query, add error handling here
  trigger_error('query failed', E_USER_ERROR);
}
else
{
    $user_id = mysql_insert_id(); //get the id of the last inserted query/user
    $bn = mysql_real_escape_string($_POST['bn'], $mysql);
    $ac_no = mysql_real_escape_string($_POST['ac'], $mysql);
    $sql = mysql_query("insert into bank_details SET user_id = $user_id, bank_name='$bn', ac_no='$ac_no'", $mysql);
    if(!$sql)
    {
      // something went wrong with the query, add error handling here
      trigger_error('query failed', E_USER_ERROR);
    }
}
?>

I must point out, however, that using the mysql_* family of functions is deprecated, and you should seriously start using mysqli_* functions instead.

UPDATE:

As Per CodeGodie's suggestion, here's the re-written code using mysqli_* functions:

<?php
$mysqli = mysqli_connect(SERVER_NAME, USER_NAME, PASSWORD, DB_NAME);

$un = mysqli_real_escape_string($_POST['un']);
$ps = mysqli_real_escape_string($_POST['ps']);
$adr = mysqli_real_escape_string($_POST['adr']);

$sql = mysqli_query($mysqli, "insert into user_details SET username='$un', password='$ps', address='$adr'");

if(!$sql)
{
  // something went wrong with the query, add error handling here
  trigger_error('query failed', E_USER_ERROR);
}
else
{
    $user_id = mysqli_insert_id($mysqli); //get the id of the last inserted query/user
    $bn = mysqli_real_escape_string($_POST['bn']);
    $ac_no = mysqli_real_escape_string($_POST['ac']);
    $sql = mysqli_query($mysqli, "insert into bank_details SET user_id = $user_id, bank_name='$bn', ac_no='$ac_no'");
    if(!$sql)
    {
      // something went wrong with the query, add error handling here
      trigger_error('query failed', E_USER_ERROR);
    }
}
?>

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM