duansanzi5265 2015-12-10 21:39
浏览 34
已采纳

创建SQL行后,在PHP bind_result方法中获取有关该行的数据

I have a function that inserts data into SQL table.

public function process_form(){
    # Start function when submit button is clicked
    if (isset($_POST['submit'])) {
      # Assign form data
      $host = $_SESSION['logged_user'];
      $game = str_replace('g','',$_POST['game']);
      $region = str_replace('r','',$_POST['region']);
      $name = $_POST['match-name'];
      $mode = str_replace('mode_0','',$_POST['mode']);
      $bid = $_POST['bid'];
      # SQL query
      $q = '
        INSERT INTO matches(
          match_id,
          host,
          game,
          region,
          match_name,
          match_mode,
          started,
          start_time,
          finished,
          finish_time,
          validated,
          team_a,
          team_b,
          bid
        )
        VALUES (
          null,
          ?,
          ?,
          ?,
          ?,
          ?,
          0,
          null,
          0,
          null,
          0,
          null,
          null,
          ?
        );
      ';
      # Process SQL
      if ($stmt = $this->db->prepare($q)) {
        $stmt->bind_param('iiisii',$host,$game,$region,$name,$mode,$bid);
        $stmt->bind_result()
        $stmt->execute(VARIABLE_GOES_HERE);
        $stmt->close();
      }
    }
  }#endfunc(process_form)

And form that gathers needed data with action attribute which redirects user to next page where inserted data is displayed.

<form method="POST" action="match.php?id=VARIABLE_GOES_HERE">

I want to extend my SQL query within $q which will give me Id of currently created row and then within $stmt->bind_result() fill variable with the id. which will be then added within action attribute in form element.

  • 写回答

1条回答 默认 最新

  • dongwu3747 2015-12-10 23:18
    关注

    What was needed is, to add this line of code: $last_id = $stmt->insert_id;

      if ($stmt = $this->db->prepare($q)) {
            $stmt->bind_param('iiisii',$host,$game,$region,$name,$mode,$bid);
            $stmt->execute();
            $last_id = $stmt->insert_id;
            $stmt->close();
    

    and then within form this:

    <form method="POST" action="match.php?id='.$last_id.'">
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 fluent的在模拟压强时使用希望得到一些建议
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services
  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏
  • ¥15 模糊pid与pid仿真结果几乎一样
  • ¥15 java的GUI的运用
  • ¥15 Web.config连不上数据库
  • ¥15 我想付费需要AKM公司DSP开发资料及相关开发。
  • ¥15 怎么配置广告联盟瀑布流
  • ¥15 Rstudio 保存代码闪退