持久数据库连接和mysql_insert_id()

时间:2014-11-01 05:35:52

标签: php mysql database

说明:

我有一个SQL查询将数据插入表中(我使用的是MYSQL) 然后我有另一个sql查询,将数据插入到另一个表中,其前面插入了数据的ID ...我几个月前使用像这样的新手方法实现了它

if(mysqli_query($con,
    "INSERT INTO  `plumit`.`posts` (
        `posted_on_id`,
        `poster_id`,
        `post_type` ,
        `post` ,
        `likes` ,
        `dislikes` ,
        `comments` ,
        `post_date`
    ) VALUES (
        '$posted_on_id', 
        '$reg_no', 
        'text',  
        '$data',  
        '0',  
        '0',  
        '', 
        '$datetime'
    )")
 ){
    $result = mysqli_query($con,
        "select * from posts order by post_id desc limit 1"
    );
    while ($rows=mysqli_fetch_array($result,MYSQLI_BOTH))
    {
        $post_id = $rows[0];
    }
    if(mysqli_query("insert into another table using $post_id"))
    {
        echo "Success";
    }
}

现在我正在更改我的所有代码,因为现在我向服务器发出了太多的查询请求,并开始学习如何优化代码并使用更智能的方法来查询数据库......

为了获取最后插入的id,我使用mysql_insert_id()而不是使用select语句 但这让我只回到了0.

所以经过大量的搜索后我发现我必须创建持久的数据库连接才能使它工作所以我把它包含在我用来插入数据的php文件中

$cfg['PersistentConnections'] = TRUE;   

但是,如果你谷歌它没有用,有很多链接说创建持久连接是一个非常糟糕的想法等...

所有我想要的是获取我插入的行的id而不是最后插入的行,因为如果我得到最后一个插入行的ID,它可以是不同行的id,可以说当我得到最后一个id时一个其他人插入数据,以便它获取该行的ID是错误的...将有1000个用户插入数据,我想要我刚插入的行的ID,我不知道该怎么做现在?任何身体?

0 个答案:

没有答案