- Prerequisites
- HTML formula for sending user data to server DB
- SQL Query
- Database
- Docker Containers
- optional - save DB locally
- Install WSL2
- Install Ubuntu
- Install Docker Desktop
- optional for DDEV:
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072;
iex ((New-Object System.Net.WebClient).DownloadString('https://raw.githubusercontent.com/ddev/ddev/master/scripts/install_ddev_wsl2_docker_desktop.ps1'))- Simple Login-Form
<main>
<div class="container">
<h1>Login Form</h1>
<div class="row" id="formFields">
<form method="POST" action="insert.php">
<div class="form-group">
<label for="userField">Username</label>
<input type="text" name="user" class="form-control" id="userField" aria-describedby="emailHelp"
placeholder="Enter username" required>
</div>
<div class="form-group">
<label for="emailField">Email address</label>
<input type="email" name="email" class="form-control" id="emailField"
aria-describedby="emailHelp" placeholder="Enter email" required>
<small id="emailHelp" class="form-text text-muted">We'll never share your email with
anyone!</small>
</div>
<div class="form-group">
<label for="passwordField">Password</label>
<input type="password" name="password" class="form-control" id="passwordField"
placeholder="Password" required>
</div>
<button type="submit" class="btn btn-primary" id="submitButton">Submit</button>
</form>
</div>
</div>
</main><?php
// Received data from formular
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$name = $_POST['user'];
$email = $_POST['email'];
$user_password = $_POST['password'];
// MySQL database credentials
$servername = "db"; // Use the service name defined in docker-compose
$username = "root";
$password = "secret";
$dbname = "db";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
// Prepare and bind
$stmt = $conn->prepare("INSERT INTO users (name, email, password) VALUES (?, ?, ?)");
$stmt->bind_param("sss", $name, $email, $user_password);
// Execute the statement
if ($stmt->execute()) {
echo "New record created successfully";
} else {
echo "Error: " . $stmt->error;
}
$stmt->close();
$conn->close();
}
?>- DB management with VS Code extension
-
- Get "MySQL" extension
- create a connection to the Database
- Get "MySQL" extension
Note
(Maybe) temporary management of DB
Port has to be the one Mapped to (ports: - "3100:3306" in docker-compose.yml)
Password has to be the one in docker-compose.yml under MYSQL_ROOT_PASSWORD:
- Containers for local formula and db server handling
- docker-compose.yml section to store locally:
db:
#... other settings
volumes:
- db_data:/var/lib/mysql # Mirror local folder and docker to make db_data persistent.
volumes:
db_data: # Volume to store data