PluginProbe
VikBooking Hotel Booking Engine & PMS / trunk
VikBooking Hotel Booking Engine & PMS vtrunk
1.8.15 1.8.14 1.8.13 1.8.12 1.8.11 1.8.10 1.8.9 1.8.6 1.8.7 1.8.8 trunk 1.6.0 1.6.1 1.6.2 1.6.3 1.6.4 1.6.5 1.6.6 1.6.7 1.6.8 1.6.9 1.7.0 1.7.1 1.7.2 1.7.3 All 36 releases
vikbooking / admin / helpers / src / backup / import / rule / autoincrement.php

autoincrement.php in VikBooking Hotel Booking Engine & PMS trunk, at admin/helpers/src/backup/import/rule/autoincrement.php

60 lines 1.2 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * @package VikBooking
4 * @subpackage core
5 * @author E4J s.r.l.
6 * @copyright Copyright (C) 2023 E4J s.r.l. All Rights Reserved.
7 * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
8 * @link https://vikwp.com
9 */
10
11 // No direct access
12 defined('ABSPATH') or die('No script kiddies please!');
13
14 /**
15 * Backup SQL Autoincrement import rule.
16 *
17 * @since 1.16.4 (J) - 1.6.4 (WP)
18 */
19 class VBOBackupImportRuleAutoincrement extends VBOBackupImportRule
20 {
21 /**
22 * Executes the backup import command.
23 *
24 * @param mixed $data The import rule instructions.
25 *
26 * @return void
27 */
28 public function execute($data)
29 {
30 $dbo = JFactory::getDbo();
31
32 $pk = null;
33
34 foreach ($dbo->getTableColumns($data->table, $typeOnly = false) as $column => $info)
35 {
36 if ($info->Extra === 'auto_increment')
37 {
38 $pk = $column;
39 }
40 }
41
42 if (!$pk)
43 {
44 // no primary keys with auto increment
45 return;
46 }
47
48 // fetch highest ID
49 $q = $dbo->getQuery(true)->select('MAX(' . $dbo->qn($pk) . ')')->from($dbo->qn($data->table));
50
51 $dbo->setQuery($q);
52 $dbo->execute();
53
54 $set_ai = (int) $dbo->loadResult() + 1;
55
56 $dbo->setQuery("ALTER TABLE `{$data->table}` AUTO_INCREMENT = {$set_ai}");
57 $dbo->execute();
58 }
59 }
60