Compare commits

...

3 Commits

Author SHA1 Message Date
Dzejkobik007
e4e447f5a3 Add mysql-tabledump 2023-03-26 23:44:54 +02:00
Dzejkobik007
c997fafc93 Update 2023-03-26 23:39:44 +02:00
Dzejkobik007
2a38db72a1 Add docker-template 2023-03-26 23:39:38 +02:00
9 changed files with 1199 additions and 0 deletions

2
.gitignore vendored Normal file
View File

@@ -0,0 +1,2 @@
node_modules
*.bak

View File

@@ -0,0 +1,10 @@
FROM node:12.18.1
ENV NODE_ENV=production
COPY "src" "/app"
WORKDIR /app
RUN npm install --production
CMD [ "node", "app.js" ]

View File

@@ -0,0 +1,11 @@
version: '3'
services:
node:
build:
context: .
dockerfile: Dockerfile
container_name: docker-template
restart: always
ports:
- 80:80

1018
si/docker-template/package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,14 @@
{
"name": "docker-template",
"version": "1.0.0",
"description": "## Úvod",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
"dependencies": {
"express": "^4.18.2"
}
}

View File

@@ -0,0 +1,9 @@
const express = require('express');
const app = express();
const port = 80;
app.use(express.static('public'));
app.listen(port, () => {
console.log(`App listening on port ${port}`);
})

View File

@@ -0,0 +1,12 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Jakub</title>
</head>
<body>
<h1>Jakub</h1>
</body>
</html>

View File

@@ -0,0 +1,60 @@
<?php
/**
* IDB interface
* Interface for DB driver and basic I/U/D/S operations.
*/
interface IDB
{
/**
* Connect to DB on DBMS
*
* @param string $host hostname
* @param string $username username
* @param string $password password
* @param string $database database name
* @return static instance of DB on success
*/
public function connect(
string $host = "",
string $username = "",
string $password = "",
string $database = ""
): ?static;
/**
* SELECT rows from table
*
* @param string $query SQL query SELECT string
* @return array result as a associative array, key is attribute name, value is attribute array; empty on error
*/
function select(string $query): array;
/**
* INSERT record to table
*
* @param string $table database table name
* @param array $data data to insert, key is attribute name, value is attribute value
* @return boolean true on success otherwise false
*/
function insert(string $table, array $data): bool;
/**
* UPDATE record in table
*
* @param string $table database table name
* @param integer $id primary key value for record to update
* @param array $data data to update, key is attribute name, value is attribute value
* @return boolean true on success otherwise false
*/
function update(string $table, int $id, array $data): bool;
/**
* DELETE item from table
*
* @param string $table database table name
* @param integer $id primary key value for record to delete
* @return boolean true on success otherwise false
*/
function delete(string $table, int $id): bool;
}

View File

@@ -0,0 +1,63 @@
<?php
class MySQL implements IDB
{
private ?mysqli $db;
public function connect(
string $host = "",
string $username = "",
string $password = "",
string $database = ""
): ?static {
$db = mysqli_connect($host, $username, $password, $database);
if ($db === false) {
return null;
}
$this->db = $db;
return $this;
}
function select(string $query): array {
$result = mysqli_query($this->db,$query);
if (
$result instanceof mysqli_result
&& $result->num_rows > 0
){
return mysqli_fetch_all($result, MYSQLI_ASSOC);
}
return [];
}
function insert(string $table, array $data): bool {
$keys = "(";
$values = "(";
foreach(array_keys($data) as $key) {
$keys .= "'".$key."', ";
}
foreach($data as $row) {
$values .= "'".$row."', ";
}
$keys .= ")";
$values .= ")";
$query = "INSERT INTO `".$table."` ".$keys." VALUES ".$values;
$result = mysqli_query($this->db, $query);
return $result ? true : false;
}
function update(string $table, int $id, array $data): bool {
$query = "INSERT INTO `".$table."` VALUES (";
for($i = 0; $i < sizeof($data); $i++) {
$query .= "'".$data[$i]."', ";
}
$query .= ")";
$result = mysqli_query($this->db, $query);
return $result ? true : false;
}
function delete(string $table, int $id): bool {
$result = mysqli_query($this->db, "DELETE FROM ".$table." WHERE id=".$id);
return $result ? true : false;
}
}