__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
<?php
namespace WP_Statistics\Service\Database\Operations;
/**
* Handles the creation of database tables.
*
* This class defines methods to execute table creation operations,
* including generating SQL queries and ensuring transactional integrity.
*/
class Create extends AbstractTableOperation
{
/**
* Execute the table creation operation.
*
* @return self
* @throws \RuntimeException
*/
public function execute()
{
try {
$this->ensureConnection();
$this->validateTableName();
$this->validateArgs();
$this->setFullTableName();
return $this->transactionHandler->executeInTransaction([$this, 'createTable']);
} catch (\Exception $e) {
throw new \RuntimeException(
sprintf("Failed to create table `%s`: %s", $this->tableName, $e->getMessage())
);
}
}
/**
* Create table operation to be executed in transaction.
*
* @return self
* @throws \RuntimeException
*/
public function createTable()
{
require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
$sql = $this->buildCreateTableSql();
$result = $this->wpdb->query($sql);
if ($result === false) {
throw new \RuntimeException(
sprintf('Failed to create table. MySQL Error: %s', $this->wpdb->last_error)
);
}
return $this;
}
/**
* Build the CREATE TABLE SQL query.
*
* @return string
*/
private function buildCreateTableSql()
{
$charset_collate = $this->wpdb->get_charset_collate();
$columns = $this->args['columns'] ?? [];
$constraints = $this->args['constraints'] ?? [];
$columnsSql = array_map(function ($columnName, $definition) {
return sprintf("`%s` %s", $columnName, $definition);
}, array_keys($columns), $columns);
$allDefinitions = array_merge($columnsSql, $constraints);
return sprintf(
"CREATE TABLE IF NOT EXISTS `%s` (\n%s\n) %s;",
$this->fullName,
implode(",\n", $allDefinitions),
$charset_collate
);
}
}
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| AbstractTableOperation.php | File | 1.76 KB | 0644 |
|
| Create.php | File | 2.18 KB | 0644 |
|
| Drop.php | File | 1.28 KB | 0644 |
|
| Insert.php | File | 6.22 KB | 0644 |
|
| Inspect.php | File | 1.34 KB | 0644 |
|
| InspectColumns.php | File | 1.82 KB | 0644 |
|
| Repair.php | File | 3.17 KB | 0644 |
|
| Select.php | File | 5.97 KB | 0644 |
|
| Update.php | File | 5.25 KB | 0644 |
|