在同一页面上设置后立即获取 ID

Posted

技术标签:

【中文标题】在同一页面上设置后立即获取 ID【英文标题】:Get ID right after it's set, on same page 【发布时间】:2013-05-03 01:29:58 【问题描述】:

Thread_Body 中的 ThreadID 需要是 Thread_Titles id 的 id。 我该怎么做呢?

if (isset($_POST['Post_Thread'])) 
    if (empty($_POST['Post_Title'])) 
        echo "No Title No Thread.";
     else 
        $Sec = mysql_real_escape_string($_GET['sec']);
        mysql_query("INSERT INTO Thread_Titles (Name, Section, Posted, Poster, Updated) VALUES('".cleanPost($_POST['Post_Title'])."', '".$Sec."', '".time()."', '".$ULN->Username."', '".time()."') ") or die(mysql_error()); 
    
    if (empty($_POST['Post_Body'])) 
        echo "No Body No Thread.";
     else 
        mysql_query("INSERT INTO Thread_Replies (Body, Posted, Poster, ThreadID) VALUES('".cleanPost($_POST['Post_Body'])."', '".time()."', '".$ULN->Username."', '".$ThreadID."') ") or die(mysql_error()); 
    

这是所有期望表单的代码。

【问题讨论】:

【参考方案1】:

使用mysql_insert_id()

mysql_query("INSERT INTO Thread_Titles (Name, Section, Posted, Poster, Updated) VALUES('".cleanPost($_POST['Post_Title'])."', '".$Sec."', '".time()."', '".$ULN->Username."', '".time()."') ") or die(mysql_error());  
$ThreadID = mysql_insert_id();

仅供参考,you shouldn't use mysql_* functions in new code。它们不再维护and are officially deprecated。看到red box?改为了解 prepared statements,并使用 PDO 或 MySQLi - this article 将帮助您决定哪个。如果你选择 PDO,here is a good tutorial。

【讨论】:

有人告诉我这个,但我仍然不知道你们在说什么。我还在学习很多东西,我会通过视频和从其他人那里学到的东西……还有 mysql_insert_id() 会做什么? 点击所有链接,您将获得所有答案。 :) 天哪,这么简单?非常感谢你。也感谢您分享我现在将研究的所有其他内容。

以上是关于在同一页面上设置后立即获取 ID的主要内容,如果未能解决你的问题,请参考以下文章

通过url地址实现多个页面跳转同一个页面获取内容数据

插入后如何立即获取唯一主键ID的值[重复]

如何使用 $_POST 在同一页面上获取输入值

微信小程序传值以及获取值方法

在同一个 Web html 页面中获取结果

在另一个页面上获取电子邮件 ID