PluginProbe ʕ •ᴥ•ʔ
JetBackup – Backup, Restore & Migrate / 1.3.3
JetBackup – Backup, Restore & Migrate v1.3.3
3.1.22.3 1.4.3 1.4.4 1.4.5 1.4.6 1.4.7 1.4.8 1.4.8.1 1.4.9 1.5.0 1.5.1 1.5.1.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.6.0 1.6.10 1.6.11 1.6.12 1.6.13 1.6.15 1.6.5.1 1.6.8.8 1.6.9 1.6.9.1 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7.5 2.0.8.7 2.0.9.11 2.0.9.14 2.0.9.15 2.0.9.6 2.0.9.7 2.0.9.9 3.1.10.7 3.1.11.1 3.1.12.3 3.1.13.4 3.1.14.17 3.1.15.4 3.1.16.1 3.1.17.5 3.1.18.10 3.1.18.8 3.1.18.9 3.1.19.8 3.1.20.3 3.1.21.3 3.1.7.9 3.1.9.2 trunk 1.1.90 1.1.91 1.2.0 1.2.5 1.2.6 1.2.7 1.2.8 1.2.9 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.3.6 1.3.7 1.3.8 1.3.9 1.4.0 1.4.1 1.4.2
backup / com / core / database / SGDatabaseAdapterWordpress.php
backup / com / core / database Last commit date
SGDatabase.php 6 years ago SGDatabaseAdapterWordpress.php 6 years ago SGIDatabaseAdapter.php 6 years ago
SGDatabaseAdapterWordpress.php
132 lines
1 <?php
2 require_once(SG_DATABASE_PATH.'SGIDatabaseAdapter.php');
3
4 class SGDatabaseAdapterWordpress implements SGIDatabaseAdapter
5 {
6 private $fetchRowIndex = 0;
7 private $lastResult = array();
8 private $connection = null;
9 private $mysqliAvailable = false;
10
11 public function __construct()
12 {
13 $this->mysqliAvailable = $this->isMysqliAvailable();
14 }
15
16 public function query($query, $params=array(), $resultType = ARRAY_A)
17 {
18 global $wpdb;
19
20 $op = strtoupper(substr(trim($query), 0, 6));
21 if ($op!='INSERT' && $op!='UPDATE' && $op!='DELETE')
22 {
23 if(!empty($params))
24 {
25 return @$wpdb->get_results($wpdb->prepare($query, $params), $resultType);
26 }
27 return @$wpdb->get_results($query, $resultType);
28 }
29 else
30 {
31 if(!empty($params))
32 {
33 return $wpdb->query($wpdb->prepare($query, $params));
34 }
35 return $wpdb->query($query);
36 }
37 }
38
39 public function exec($query)
40 {
41 //as wpdb doesn't work with statements, this function will just return true or false
42
43 global $wpdb;
44
45 $this->fetchRowIndex = 0;
46 $res = $wpdb->query($query);
47
48 if ($res === false) {
49 return false;
50 }
51 return true;
52 }
53
54 public function execRaw($query)
55 {
56 //if mysqli is not available, run the query using wpdb
57 if (!$this->mysqliAvailable) {
58 return $this->exec($query);
59 }
60
61 //mysqli is available
62 if (!$this->connection) { //but there isn't any active connection
63 if (!$this->connectOverMysqli()) { //try to connect
64 $this->mysqliAvailable = false;
65 return $this->exec($query); //could not connect; continue using wpdb.
66 }
67 }
68
69 //mysqli is already connected, use it
70 return mysqli_real_query($this->connection, $query);
71 }
72
73 private function connectOverMysqli()
74 {
75 $this->connection = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
76
77 //set charset just in case if set names (inside sql file) doesn't work
78 if ($this->connection) {
79 mysqli_set_charset($this->connection, SG_DB_CHARSET);
80 }
81
82 return $this->connection;
83 }
84
85 private function isMysqliAvailable()
86 {
87 return function_exists('mysqli_connect');
88 }
89
90 public function fetch($st)
91 {
92 global $wpdb;
93
94 if ($this->fetchRowIndex==0) {
95 $this->lastResult = $wpdb->last_result;
96 }
97
98 $res = @$this->lastResult[$this->fetchRowIndex];
99 if (!$res) return false;
100
101 $this->fetchRowIndex++;
102 return get_object_vars($res);
103 }
104
105 public function lastInsertId()
106 {
107 global $wpdb;
108 return $wpdb->insert_id;
109 }
110
111 public function getLastError()
112 {
113 if ($this->mysqliAvailable && $this->connection) {
114 return mysqli_error($this->connection);
115 }
116
117 global $wpdb;
118 return $wpdb->last_error;
119 }
120
121 public function flush()
122 {
123 global $wpdb;
124 $wpdb->flush();
125 }
126
127 public function escapeSql($value)
128 {
129 return esc_sql($value);
130 }
131 }
132