Website mit MySQL Datenbank verbinden?


06.12.2022, 17:01

Ich würde die Website über Netlify hosten.

4 Antworten

Auf Netlify kannst du keine PHP-Anwendungen hosten. Der Anbieter ist ausschließlich für das Webhosting statischer Webseiten gedacht.

Suche dir also besser erst einmal einen Dienstleister, der dir die nötigen Ressourcen liefern kann. Es gibt etliche Webhoster, die PHP-Support sowie eine MySQL-Datenbank/MariaDB vorkonfiguriert in einem Paket anbieten, sodass du für eine Kommunikation zwischen Webanwendung und Datenbank lediglich noch ein PHP-Skript benötigst, welches von MySQLi-/PDO-Funktionen Gebrauch macht.

Ein Tutorial zu beiden genannten Extensions findest du auch hier.

Entweder, du verlegst in dem Zuge dann deine komplette Webseite auf den Webspace des gewählten Anbieters oder du nutzt die PHP-Anwendung als API.

Für Letzteres kannst du von deiner Webseite aus via JavaScript AJAX-Requests (XHR/Fetch) verschicken, die an bestimmte PHP-Skripte gehen, welche wiederum die angeforderten Daten zurückschicken. Solltest du sensible Daten transportieren wollen, solltest du dich im Voraus noch über Sicherheitsmaßnahmen schlau machen (erste Stichworte die für Folgerecherchen genutzt werden können: TLS, Authentifikation und Authentication).

Ich skizziere die Vorgensweise: Du schreibst erstmal eine Webseite mit einem Fomular, wo die Daten eintragen kannst. In dem Form Tag gibt es die Attribute method und action. Method sollte den Wert post haben. Wichtiger ist allerdings action. Dort trägst Du den Dateinamen des Scriptes ein, welches die Daten entgegen nimmt. Dort kommen die Daten in der globalen $_POST Variablen an. Dort kannst du mit den PDO Funktionen von PHP dann die Daten mit Hilfe von SQL Abfragen in die Datenbank eintragen.

Woher ich das weiß:Berufserfahrung – Web Developer bei einem mittelständischen Portalbetreiber

Hallo🙂

Um eine MySQL-Datenbank mit einer Website zu verbinden, musst du ein PHP-Skript verwenden, das mit dem Datenbankserver kommuniziert.

Du musst die Datenbankverbindungsdetails wie Hostname, Benutzername, Passwort und Datenbankname in deinem PHP-Skript angeben.

Hier ist ein einfaches Beispiel, wie du eine Verbindung zu einer MySQL-Datenbank herstellen und eine SELECT-Abfrage ausführen kannst:

<?php

// Verbindungsdetails

$host = "hostname";

$user = "username";

$password = "password";

$dbname = "database_name";

// Verbindung zur Datenbank herstellen

$conn = mysqli_connect($host, $user, $password, $dbname);

// Überprüfen, ob Verbindung erfolgreich

if (!$conn) {

die("Verbindung fehlgeschlagen: " . mysqli_connect_error());

}

// SELECT-Abfrage ausführen

$sql = "SELECT * FROM tabelle";

$result = mysqli_query($conn, $sql);

// Überprüfen, ob Abfrage erfolgreich

if (mysqli_num_rows($result) > 0) {

// Daten ausgeben

while ($row = mysqli_fetch_assoc($result)) {

echo "id: " . $row["id"] . " - Name: " . $row["name"] . "<br>";

}

} else {

echo "0 Ergebnisse";

}

// Verbindung schließen

mysqli_close($conn);

?>

Um die Website online zu hosten, kannst du Netlify super verwenden und das PHP-Skript auf einem Webserver wie Apache oder Nginx ausführen.

Woher ich das weiß:Studium / Ausbildung

Genauso, wie lokal. Wenn der DB-Server auf einem anderen Server läuft, dann muss dort eben eine entsprechende Portfreigabe gemacht werden. Aus Sicherheitsgründen sollten Datenbankserver aber nicht auf öffentlichen Servern laufen oder sie sollten zumindest per Firewall geschlossen sein. Außer natürlich, Du willst unbedingt einen öffentlichen DB-Server haben.

GuteFrageXY13 
Fragesteller
 06.12.2022, 17:06

Ich will nur austesten wie gut ein Formular auf einer Website funktionieren würde, also z.B. ein Freund von mir würde da seinen Vornamen eintippen und ich würde es dann in der Datenbank sehen. Wäre es dann immernoch ein Sicherheitsrisiko?

0
Xandros0506  06.12.2022, 17:15
@GuteFrageXY13

Xampp gehört schon nicht über das Internet erreichbar gemacht.

Zitat: "XAMPP is meant only for development purposes." -> heisst, dass es nicht für den Produktiveinsatz vorgesehen ist und man sich besser selbst einen Webserver aufsetzt, der auch entsprechend gehärtet wird.
Der SQL-Server kann daneben auf einer eigenen Maschine laufen, die zwar vom Webserver, aber nicht vom Internet erreichbar ist.

0