dongliang_bj2016 2018-06-21 11:23
浏览 46
已采纳

使用3个表插入INTO

 $sql3 = "INSERT INTO users_addresses (ua_user_id,ua_address_id) VALUES ('','')";

I am new in php and my hint is to link 2 tables id's in in another one called users_addresses.When a user is registered in my database i want the user_id and address_id to clone in users_addresses(ua_user_id,ua_address_id)

My tables

enter image description here

$sql = "INSERT INTO users (user_fname,user_mname,user_lname,user_login,user_email,user_phone) 
            VALUES ('{$_SESSION['userinfo']['fname']}', '{$_SESSION['userinfo']['mname']}', '{$_SESSION['userinfo']['lname']}', '{$_SESSION['userinfo']['login']}', '{$_SESSION['userinfo']['email']}', '{$_SESSION['userinfo']['phone']}')";
    $sql1 = "INSERT INTO addresses (address_line_1,address_line_2,address_zip,address_city,address_province,address_country) 
            VALUES ('{$_SESSION['addressinfo']['adr1']}', '{$_SESSION['addressinfo']['adr2']}', '{$_SESSION['addressinfo']['zip']}', '{$_SESSION['addressinfo']['city']}', '{$_SESSION['addressinfo']['provinciq']}', '{$_SESSION['addressinfo']['durjava']}')"; 
    $sql2 = "INSERT INTO notes (note_text) 
            VALUES ('{$_SESSION['noteinfo']['note']}')";

These are my others SQL codes for adding session's data in DB.

  • 写回答

2条回答 默认 最新

  • dongyun8138 2018-06-21 11:41
    关注

    Use mysqli_insert_id() to get the unique ID of the insert table, this example uses Procedural style:

    <?php
    include 'connection.php';
    ......
    $InsertSQL =    "INSERT INTO users (user_fname,user_mname,user_lname,user_login,user_email,user_phone) 
                    VALUES ('{$_SESSION['userinfo']['fname']}',
                            '{$_SESSION['userinfo']['mname']}',
                            '{$_SESSION['userinfo']['lname']}',
                            '{$_SESSION['userinfo']['login']}',
                            '{$_SESSION['userinfo']['email']}',
                            '{$_SESSION['userinfo']['phone']}')";
    $ResultSQL = mysqli_query($conn, $InsertSQL) or die(mysqli_error($conn)); // <-- execute your query
    $UserID = mysqli_insert_id($conn); // <-- get the UserID
    
    $InsertSQL =    "INSERT INTO addresses (address_line_1,address_line_2,address_zip,address_city,address_province,address_country) 
                    VALUES ('{$_SESSION['addressinfo']['adr1']}',
                            '{$_SESSION['addressinfo']['adr2']}',
                            '{$_SESSION['addressinfo']['zip']}',
                            '{$_SESSION['addressinfo']['city']}',
                            '{$_SESSION['addressinfo']['provinciq']}',
                            '{$_SESSION['addressinfo']['durjava']}')"; 
    $ResultSQL = mysqli_query($conn, $InsertSQL) or die(mysqli_error($conn)); // <-- execute your query
    $AddressID = mysqli_insert_id($conn); // <-- get the AddressID
    
    $InsertSQL =    "INSERT INTO user_addresses (ua_user_id,ua_address_id) 
                    VALUES ($UserID,$AddressID)"; // <-- INSERT INTO user_address
    $ResultSQL = mysqli_query($conn, $InsertSQL) or die(mysqli_error($conn)); // <-- execute your query
    ?>
    

    You should also look into SQL Injection vulnerability, check out prepared statements.

    Hope that helps.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)