php - 我想在发布后获得一个 id(自动增量)并将其发布到其他表中

标签 php mysql sql

我想将 Evenement 表的 id 发布到 Evenementontvanger.idEvent 列中。我尝试使用 mysql_insert_id() 但这不起作用。我尝试过这样的:

    <?php
    //include db configuration file
    include 'connection.php';
    function user_joined($user_werknemer,$user_project,$user_klant,$user_taak,$user_name,$user_desc, $user_start, $user_startdate, $user_starttime, $user_end, $user_enddate, $user_endtime, $user_color){

            $q = "INSERT INTO evenement (id,title,description,start,startdate,starttime,end,enddate,endtime,color) VALUES 
                ('','".$user_name."','".$user_desc."','".$user_start."','".$user_startdate."','".$user_starttime."','".$user_end."','".$user_enddate."','".$user_endtime."','".$user_color."') ";
            $qo = "INSERT INTO evenementontvanger (idWerknemer,idProject,idEvent,idKlant,idTaak) VALUES ('".$user_werknemer."','".$user_project."','','".$user_klant."','".$user_taak."')";


        mysql_query($q);
        $id = mysql_insert_id();

$query = 'INSERT INTO evenementontvanger("idEvent") VALUES('.$id.')';
        mysql_query($qo);}


    if(isset($_POST['user_werknemer'],$_POST['user_project'],$_POST['user_klant'],$_POST['user_taak'],$_POST['user_name'],$_POST['user_desc'],$_POST['user_startdate'],$_POST['user_start'],$_POST['user_starttime'],$_POST['user_enddate'],$_POST['user_endtime'],$_POST['user_end'],$_POST['user_color'],$_POST['action'])){
            $user_werknemer=$_POST['user_werknemer'];
            $user_color=$_POST['user_color'];
            $user_name=$_POST['user_name'];
            $user_desc=$_POST['user_desc'];
            $user_project=$_POST['user_project'];
            $user_klant=$_POST['user_klant'];
            $user_taak=$_POST['user_taak'];
            $user_start=$_POST['user_startdate']." ".$_POST['user_starttime'];
            $user_startdate=$_POST['user_startdate'];
            $user_starttime=$_POST['user_starttime'];
            $user_end=$_POST['user_enddate']." ".$_POST['user_endtime'];
            $user_enddate=$_POST['user_enddate'];
            $user_endtime=$_POST['user_endtime'];
            $action=$_POST['action'];
            if ($action=='joined'){
                user_joined( $user_werknemer, $user_project, $user_klant, $user_taak, $user_name, $user_desc, $user_start, $user_startdate, $user_starttime, $user_end, $user_enddate, $user_endtime, $user_color);
                }
        }
    /*if ( (isset($_POST["id"]) && strlen($_POST["id"]) >= 3 && strlen($_POST["id"]) <= 60) &&
        (isset($_POST["name"]) && strlen($_POST["name"]) >= 3 && strlen($_POST["name"]) <= 50) &&
        (isset($_POST["age"]) && strlen($_POST["age"]) >= 3 && strlen($_POST["age"]) <= 40) ) 
    {   //check $_POST["name"] and $_POST["address"] and $_POST["city"] are not empty

        $id   = $_POST["id"];
        $name = $_POST["name"];
        $age   = $_POST["age"];

        $q = "INSERT INTO tbltest ( id, name, age) VALUES 
                ('".$id."','".$name."','".$age."')";
        mysql_query($q); 

    }*/

    ?>

我还尝试使用last_insert_id。但这并没有将 id 放入 idEvent 中。

最佳答案

在以下查询中,

$qo = "INSERT INTO evenementontvanger
       (idWerknemer,idProject,idEvent,idKlant,idTaak)
       VALUES 
       ('".$user_werknemer."', '".$user_project."',
        '', '".$user_klant."', '".$user_taak."')";

您正在从字段 idEvent 设置空字符串 ''
您可以直接使用 LAST_INSERT_ID() 来代替它,它是在执行为 $q 定义的查询后生成的;

喜欢:

$qo = "INSERT INTO evenementontvanger
       (idWerknemer,idProject,idEvent,idKlant,idTaak)
       VALUES 
       ('".$user_werknemer."', '".$user_project."', 
        LAST_INSERT_ID(), '".$user_klant."', '".$user_taak."')";

执行mysql_query($q);后,
以下陈述不是必需的。

$id = mysql_insert_id();

$query = 'INSERT INTO evenementontvanger("idEvent") VALUES('.$id.')';

关于php - 我想在发布后获得一个 id(自动增量)并将其发布到其他表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22474133/

相关文章:

php - 删除 WordPress 子主题中的父主题排队文件

php - Laravel 5.0 用户 Eloquent 模型 mock

php - 在 Nginx 中为 proxy_read_timeout 设置什么值以防止浏览器中的 WebSocket 超时

mysql - 将 mySql 数据库表复制到另一个具有不同表结构的数据库表

MySQL 查询与内连接返回空集

mysql - 多表查询中总和列显示零值

php - MySql 如果条件匹配则选择值,如果不匹配则选择第一个

javascript - 强制在每个新的浏览器 session 上登录用户?

php - 字符集设置为 UTF-8,但 mysqli 报告不是 utf8

mysql - 在 SQL 中将列变为行