<small id='JckDW'></small><noframes id='JckDW'>

      • <bdo id='JckDW'></bdo><ul id='JckDW'></ul>
      1. <legend id='JckDW'><style id='JckDW'><dir id='JckDW'><q id='JckDW'></q></dir></style></legend><tfoot id='JckDW'></tfoot>

        <i id='JckDW'><tr id='JckDW'><dt id='JckDW'><q id='JckDW'><span id='JckDW'><b id='JckDW'><form id='JckDW'><ins id='JckDW'></ins><ul id='JckDW'></ul><sub id='JckDW'></sub></form><legend id='JckDW'></legend><bdo id='JckDW'><pre id='JckDW'><center id='JckDW'></center></pre></bdo></b><th id='JckDW'></th></span></q></dt></tr></i><div id='JckDW'><tfoot id='JckDW'></tfoot><dl id='JckDW'><fieldset id='JckDW'></fieldset></dl></div>

        如何从 PDO 获取最后插入的插入行 ID

        时间:2023-10-04
        • <legend id='gjCYz'><style id='gjCYz'><dir id='gjCYz'><q id='gjCYz'></q></dir></style></legend>
              1. <i id='gjCYz'><tr id='gjCYz'><dt id='gjCYz'><q id='gjCYz'><span id='gjCYz'><b id='gjCYz'><form id='gjCYz'><ins id='gjCYz'></ins><ul id='gjCYz'></ul><sub id='gjCYz'></sub></form><legend id='gjCYz'></legend><bdo id='gjCYz'><pre id='gjCYz'><center id='gjCYz'></center></pre></bdo></b><th id='gjCYz'></th></span></q></dt></tr></i><div id='gjCYz'><tfoot id='gjCYz'></tfoot><dl id='gjCYz'><fieldset id='gjCYz'></fieldset></dl></div>

                  <tbody id='gjCYz'></tbody>

                  <bdo id='gjCYz'></bdo><ul id='gjCYz'></ul>
                • <tfoot id='gjCYz'></tfoot>

                  <small id='gjCYz'></small><noframes id='gjCYz'>

                  本文介绍了如何从 PDO 获取最后插入的插入行 ID的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

                  问题描述

                  我在 PHP 中遵循 mvc 结构,我想检索最后插入的行 ID.

                  I am following mvc structure in PHP and I want to retrieve last inserted row ID.

                  我创建了以下 sql 代码:

                  $sql = "INSERT INTO song (artist, track, link) VALUES (:artist, :track, :link)";
                  $query = $this->db->prepare($sql);
                  $query->execute(array(':artist' => $artist, ':track' => $track, ':link' => $link));
                  
                  echo $query->lastInsertId(); // To retrieve last inserted row ID.
                  

                  但不幸的是我收到了这个错误:致命错误:调用未定义的方法 PDOStatement::lastInsertId()

                  but unfortunately I ma getting this error: Fatal error: Call to undefined method PDOStatement::lastInsertId()

                  我也试过这个 stack 链接,但对我不起作用,所以如果你帮我检索 ID,我会很高兴.

                  I have also tried this stack links but not worked for me so I will happy if you help me for retrieve ID.

                  我也在这里分享我的 controller.php 文件.

                  I am also sharing my controller.php file here.

                  /**
                   * This is the "base controller class". All other "real" controllers extend this class.
                   */
                  class Controller{
                      /**
                       * @var null Database Connection
                       */
                      public $db = null;
                  
                      /**
                       * Whenever a controller is created, open a database connection too. The idea behind is to have ONE connection
                       * that can be used by multiple models (there are frameworks that open one connection per model).
                       */
                      function __construct(){
                          $this->openDatabaseConnection();
                      }
                  
                      /**
                       * Open the database connection with the credentials from application/config/config.php
                       */
                      private function openDatabaseConnection(){
                          // set the (optional) options of the PDO connection. in this case, we set the fetch mode to
                          // "objects", which means all results will be objects, like this: $result->user_name !
                          // For example, fetch mode FETCH_ASSOC would return results like this: $result["user_name] !
                          // @see http://www.php.net/manual/en/pdostatement.fetch.php
                          $options = array(PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_OBJ, PDO::ATTR_ERRMODE => PDO::ERRMODE_WARNING);
                  
                          // generate a database connection, using the PDO connector
                          // @see http://net.tutsplus.com/tutorials/php/why-you-should-be-using-phps-pdo-for-database-access/
                          $this->db = new PDO(DB_TYPE . ':host=' . DB_HOST . ';dbname=' . DB_NAME, DB_USER, DB_PASS, $options);
                      }
                  
                      /**
                       * Load the model with the given name.
                       * loadModel("SongModel") would include models/songmodel.php and create the object in the controller, like this:
                       * $songs_model = $this->loadModel('SongsModel');
                       * Note that the model class name is written in "CamelCase", the model's filename is the same in lowercase letters
                       * @param string $model_name The name of the model
                       * @return object model
                       */
                      public function loadModel($model_name){
                          require 'application/models/' . strtolower($model_name) . '.php';
                          // return new model (and pass the database connection to the model)
                          return new $model_name($this->db);
                      }
                  }
                  

                  推荐答案

                  大功告成.

                  如果您查看 lastInsertId 的手册页,则会在数据库句柄 - 您当前正在语句中调用它.

                  If you look at the manual page for lastInsertId, it's called on the database handle - you're currently calling it on the statement.

                  你只需要打电话:

                  $this->db->lastInsertId();
                  

                  这篇关于如何从 PDO 获取最后插入的插入行 ID的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!

                  上一篇:如何使用 PDO 和 memcached 设计缓存系统? 下一篇:PHP Postgres PDO 驱动不支持prepared statement?

                  相关文章

                  最新文章

                  <small id='mBTiO'></small><noframes id='mBTiO'>

                      <legend id='mBTiO'><style id='mBTiO'><dir id='mBTiO'><q id='mBTiO'></q></dir></style></legend>
                    1. <i id='mBTiO'><tr id='mBTiO'><dt id='mBTiO'><q id='mBTiO'><span id='mBTiO'><b id='mBTiO'><form id='mBTiO'><ins id='mBTiO'></ins><ul id='mBTiO'></ul><sub id='mBTiO'></sub></form><legend id='mBTiO'></legend><bdo id='mBTiO'><pre id='mBTiO'><center id='mBTiO'></center></pre></bdo></b><th id='mBTiO'></th></span></q></dt></tr></i><div id='mBTiO'><tfoot id='mBTiO'></tfoot><dl id='mBTiO'><fieldset id='mBTiO'></fieldset></dl></div>
                        <bdo id='mBTiO'></bdo><ul id='mBTiO'></ul>
                    2. <tfoot id='mBTiO'></tfoot>