PluginProbe ʕ •ᴥ•ʔ
Matomo Analytics – Powerful, Privacy-First Insights for WordPress / 4.3.0
Matomo Analytics – Powerful, Privacy-First Insights for WordPress v4.3.0
5.11.1 5.11.0 5.10.2 5.10.1 trunk 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.1.0 1.1.1 1.1.2 1.1.3 1.2.0 1.3.0 1.3.1 1.3.2 4.0.0 4.0.1 4.0.2 4.0.3 4.0.4 4.1.0 4.1.1 4.1.2 4.1.3 4.10.0 4.11.0 4.12.0 4.13.0 4.13.2 4.13.3 4.13.4 4.13.5 4.14.0 4.14.1 4.14.2 4.15.0 4.15.1 4.15.2 4.15.3 4.2.0 4.3.0 4.3.1 4.4.1 4.4.2 4.5.0 4.6.0 5.0.1 5.0.2 5.0.3 5.0.4 5.0.5 5.0.6 5.0.7 5.0.8 5.1.0 5.1.1 5.1.2 5.1.3 5.1.4 5.1.5 5.1.6 5.1.7 5.10.0 5.2.0 5.2.1 5.2.2 5.3.0 5.3.1 5.3.2 5.3.3 5.6.0 5.6.1 5.7.0 5.7.1 5.8.0 5.8.1 5.8.2
matomo / app / core / Updater / Migration / Db / Sql.php
matomo / app / core / Updater / Migration / Db Last commit date
AddColumn.php 5 years ago AddColumns.php 5 years ago AddIndex.php 5 years ago AddPrimaryKey.php 5 years ago AddUniqueKey.php 5 years ago BatchInsert.php 5 years ago BoundSql.php 5 years ago ChangeColumn.php 5 years ago ChangeColumnType.php 5 years ago ChangeColumnTypes.php 5 years ago CreateTable.php 5 years ago DropColumn.php 5 years ago DropColumns.php 5 years ago DropIndex.php 5 years ago DropPrimaryKey.php 5 years ago DropTable.php 5 years ago Factory.php 5 years ago Insert.php 5 years ago Sql.php 5 years ago
Sql.php
100 lines
1 <?php
2 /**
3 * Matomo - free/libre analytics platform
4 *
5 * @link https://matomo.org
6 * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
7 */
8 namespace Piwik\Updater\Migration\Db;
9 use Piwik\Common;
10 use Piwik\Db;
11 use Piwik\Updater\Migration\Db as DbMigration;
12
13 /**
14 * Executes a given SQL query.
15 *
16 * @see Factory::sql()
17 * @ignore
18 */
19 class Sql extends DbMigration
20 {
21
22 /**
23 * @var string
24 */
25 protected $sql;
26
27 /**
28 * @var false|int|array
29 */
30 private $errorCodesToIgnore;
31
32 /**
33 * Sql constructor.
34 * @param string $sql
35 * @param int|int[] $errorCodesToIgnore If no error should be ignored use an empty array.
36 */
37 public function __construct($sql, $errorCodesToIgnore)
38 {
39 if (!is_array($errorCodesToIgnore)) {
40 $errorCodesToIgnore = array($errorCodesToIgnore);
41 }
42
43 $this->sql = $sql;
44 $this->errorCodesToIgnore = $errorCodesToIgnore;
45 }
46
47 public function shouldIgnoreError($exception)
48 {
49 if (empty($this->errorCodesToIgnore)) {
50 return false;
51 }
52
53 foreach ($this->errorCodesToIgnore as $code) {
54 if (Db::get()->isErrNo($exception, $code)) {
55 return true;
56 }
57 }
58
59 return false;
60 }
61
62 /**
63 * @internal
64 * @param int $errorCode
65 * @return $this
66 */
67 public function addErrorCodeToIgnore($errorCode)
68 {
69 $this->errorCodesToIgnore[] = $errorCode;
70
71 return $this;
72 }
73
74 /**
75 * @internal
76 */
77 public function getErrorCodesToIgnore()
78 {
79 return $this->errorCodesToIgnore;
80 }
81
82 public function __toString()
83 {
84 $sql = $this->sql;
85
86 if (!empty($sql) && !Common::stringEndsWith($sql, ';')) {
87 $sql .= ';';
88 }
89
90 return $sql;
91 }
92
93 public function exec()
94 {
95 if (!empty($this->sql)) {
96 Db::exec($this->sql);
97 }
98 }
99 }
100