Blob Blame History Raw
diff --git a/classes/class_db.php b/classes/class_db.php
index 3a6a65a..81e741e 100755
--- a/classes/class_db.php
+++ b/classes/class_db.php
@@ -13,7 +13,6 @@ class db
     // Class wide variables
     var $pdo;
     var $prefix;
-    var $insert_id;
     var $affected_rows;
 
     // Function to initialize a db connection
@@ -92,11 +91,7 @@ function query($sql, $params = array(), $single = false)
                     return $stmt->fetchAll(PDO::FETCH_ASSOC);
                 }
             }
-            else if (strpos($sql, 'insert') === 0)
-            {
-                $this->insert_id = $stmt;
-            }
-            else if (strpos($sql, 'update') === 0 || strpos($sql, 'delete') === 0)
+            else
             {
                 $this->affected_rows = $stmt->rowCount();
             }
@@ -109,6 +104,12 @@ function query($sql, $params = array(), $single = false)
         }
     }
 
+    // Gets the last inserted ID
+    function insert_id($column)
+    {
+        return $this->pdo->lastInsertId($column);
+    }
+
     // Gets the database size
     function get_size()
     {
diff --git a/classes/class_nav.php b/classes/class_nav.php
index 3228d23..1399ab2 100755
--- a/classes/class_nav.php
+++ b/classes/class_nav.php
@@ -18,7 +18,7 @@ function __construct()
     {
         $this->rewrite_on = $this->check_rewrite();
     }
-    
+
     // Check if mod_rewrite is enabled or not
     function check_rewrite()
     {
@@ -44,7 +44,7 @@ function get($nav_key, $project = '', $page = 1, $age = '')
             $base = $core->current_uri();
 
             $arg_project = !empty($project) ? '?project=' . $project : '?';
-            $arg_page = $page > 1 ? "&page={$page}" : ""; 
+            $arg_page = $page > 1 ? "&page={$page}" : "";
             $arg_age = !empty($age) ? "&age={$age}" : "";
 
             $rewrite_base = $core->current_uri() . (!empty($project) ? "~{$project}/" : "");
@@ -97,7 +97,7 @@ function get($nav_key, $project = '', $page = 1, $age = '')
     function get_paste($paste_id, $paste_key, $hash, $project, $format = '')
     {
         global $core, $config;
-        
+
         try
         {
             // Determine whether to use ID or key
@@ -109,20 +109,20 @@ function get_paste($paste_id, $paste_key, $hash, $project, $format = '')
             {
                 $key = $paste_id;
             }
-            
+
             if ($this->rewrite_on)
             {
                 $url = $core->current_uri() . (!empty($project) ? "~{$project}/" : "") .
-                                           "{$key}/" .
-                                           (!empty($hash) ? "{$hash}/" : "") .
-                                           (!empty($format) ? "{$format}/" : "");
+                                              "{$key}/" .
+                                              (!empty($hash) ? "{$hash}/" : "") .
+                                              (!empty($format) ? "{$format}/" : "");
             }
             else
             {
                 $url = $core->current_uri() . "show.php?id={$key}" .
-                                           (!empty($hash) ? "&hash={$hash}" : "") .
-                                           (!empty($project) ? "&project={$project}" : "") .
-                                           (!empty($format) ? "&mode={$format}" : "");
+                                              (!empty($hash) ? "&hash={$hash}" : "") .
+                                              (!empty($project) ? "&project={$project}" : "") .
+                                              (!empty($format) ? "&mode={$format}" : "");
             }
 
             return $url;
diff --git a/index.php b/index.php
index fc88607..3240581 100755
--- a/index.php
+++ b/index.php
@@ -23,7 +23,7 @@
 $mode = $core->variable('mode', '');
 $time = time();
 $skip_insert = false;
-$db->insert_id = 0;
+$new_id = 0;
 
 if (empty($project))
 {
@@ -173,15 +173,18 @@
             ':hash'         => $hash,
             ':ip'           => $core->remote_ip()
         ));
+
+        // Get the last inserted paste ID
+        $new_id = $db->insert_id('id');
     }
 
     // Address API requests
     if ($mode == 'xml' || $mode == 'json')
     {
-        if ($db->insert_id)
+        if ($new_id)
         {
             $skin->assign(array(
-                'paste_id'    => $config->url_key_enabled ? "p{$url_key}" : $db->insert_id,
+                'paste_id'    => $config->url_key_enabled ? "p{$url_key}" : $new_id,
                 'paste_hash'  => $private ? $hash : '',
             ));
 
@@ -199,10 +202,10 @@
     }
     else
     {
-        if ($db->insert_id)
+        if ($new_id)
         {
             $hash_arg = ($private || $password) ? $hash : '';
-            $url = $nav->get_paste($db->insert_id, $url_key, $hash_arg, $project);
+            $url = $nav->get_paste($new_id, $url_key, $hash_arg, $project);
 
             if (!$password)
             {