Skip to content

Commit 0c4944d

Browse files
committed
v1.1.0 - Add Create Table
1 parent 02f276e commit 0c4944d

File tree

6 files changed

+77
-10
lines changed

6 files changed

+77
-10
lines changed

.phpunit.result.cache

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"version":1,"defects":{"CreateTest::testTable":5},"times":{"CreateTest::testTable":0.041,"DeleteTest::testAll":0.049,"DeleteTest::testWhere":0.07,"DeleteTest::testLike":0.052,"InsertTest::testInsert":0.048,"MySqlTest::testConstructor with data set #0":0.015,"MySqlTest::testConstructor with data set #1":0.002,"MySqlTest::testQueryAndFetch":0.005,"SelectTest::testAll":0.007,"SelectTest::testWhere":0.003,"SelectTest::testLike":0.003}}

src/Example.php

Lines changed: 0 additions & 6 deletions
This file was deleted.

src/classes/Create.php

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
<?php
2+
3+
namespace DinoDev\MySql\Classes;
4+
5+
class Create extends MySql
6+
{
7+
protected MySql $MySql;
8+
9+
public function __construct(MySql $_MySql)
10+
{
11+
$this->MySql = $_MySql;
12+
}
13+
14+
public function Table(string $tableName, array $valuesName, array $valuesType)
15+
{
16+
$sql = $this->generateSql($tableName, $valuesName, $valuesType);
17+
18+
return $this->MySql->query($sql);
19+
}
20+
21+
protected function generateSql(string $tableName, array $valuesName, array $valuesType)
22+
{
23+
$valuesName = $this->removeSpaces($valuesName);
24+
25+
$sql = "CREATE TABLE ";
26+
$sql .= $tableName . " ( ";
27+
foreach ($valuesName as $key => $value) {
28+
$sql .= $value . " " . $valuesType[$key] . " ";
29+
30+
$sql .= $key === array_key_last($valuesName) ? ");" : ", ";
31+
}
32+
33+
return $sql;
34+
}
35+
36+
protected function removeSpaces($valueToCheck)
37+
{
38+
return str_replace(" ", "", $valueToCheck);
39+
}
40+
}

src/classes/MySql.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ class MySql
99
private string $password;
1010
private string $database;
1111

12-
protected \mysqli $mysqli;
12+
public \mysqli $mysqli;
1313

1414
function __construct(
1515
string $_hostname,

tests/CreateTest.php

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
<?php
2+
3+
use PHPUnit\Framework\TestCase;
4+
use DinoDev\MySql\Classes\MySql;
5+
use DinoDev\MySql\Classes\Create;
6+
7+
require_once __DIR__ . "/../vendor/autoload.php";
8+
9+
class CreateTest extends TestCase
10+
{
11+
public MySql $MySql;
12+
public Create $Create;
13+
14+
protected function setUp(): void
15+
{
16+
$this->MySql = new MySql("localhost", "root", "MySql", "world", $state);
17+
$this->Create = new Create($this->MySql);
18+
}
19+
20+
public function testTable()
21+
{
22+
//Drop table, case exists
23+
$this->dropTestTable();
24+
25+
$this->assertTrue($this->Create->Table("Test", ["Value 1", "Value 2"], ["varchar(20)", "varchar(20)"]));
26+
27+
$this->assertFalse($this->Create->Table("Test", ["Value 1", "Value 2"], ["varchar(20)", "varchar(20)"]));
28+
}
29+
30+
public function dropTestTable()
31+
{
32+
$this->MySql->query("DROP TABLE Test");
33+
}
34+
}

tests/InsertTest.php

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,6 @@ public function testInsert()
2727
$this->assertFalse($this->Insert->Insert("NoTable", [], []));
2828

2929
//Delete the Temporary Table
30-
$this->MySql->queryAndFetch("DROP TABLE temptable");
31-
32-
30+
$this->MySql->queryAndFetch("DROP TABLE temptable");
3331
}
3432
}

0 commit comments

Comments
 (0)