Hinzufügen von Bildern zu einer MySQL-Datenbank über PHP. So schreiben Sie mit PHP-Code in eine MySQL-Datenbank. Hinzufügen zu MySQL über PHP

Letzte Aktualisierung: 01.11.2015

Um Daten hinzuzufügen, verwenden Sie den Ausdruck „INSERT“:

$query = „INSERT INTO products VALUES(NULL, „Samsung Galaxy III“, „Samsumg““);

Die „INSERT“-Anweisung fügt eine einzelne Zeile in eine Tabelle ein. Nach dem Schlüsselwort INTO wird der Tabellenname angegeben und nach VALUES wird in Klammern die Wertemenge für alle Spalten angegeben. Da wir in der Tabelle drei Spalten haben, geben wir drei Werte an.

Da wir im vorherigen Thema beim Erstellen einer Tabelle die folgende Spaltenreihenfolge angegeben haben: ID, Name, Firma, wird in diesem Fall der Wert NULL für die ID-Spalte, „Samsung Galaxy III“ für den Namen und „Samsumg“ übergeben. für die Firma.

Da die ID-Spalte als AUTO_INCREMENT definiert ist, müssen wir ihr keinen bestimmten numerischen Wert zuweisen und können einen NULL-Wert übergeben, und MySQL weist der Spalte den nächsten verfügbaren Wert zu.

Schauen wir uns nun das Hinzufügen von Daten anhand eines Beispiels an. Lassen Sie uns eine Datei erstellen create.php mit folgendem Inhalt:

Daten hinzugefügt"; ) // Verbindung schließen mysqli_close($link); ) ?>

Neues Modell hinzufügen

Modell eingeben:

Hersteller:



Hier wird der Code für die Interaktion mit der Datenbank mit der Funktionalität der Formulare kombiniert: Über das Formular geben wir Daten ein, die der Datenbank hinzugefügt werden sollen.

Sicherheit und MySQL

Hier haben wir die Funktion mysqli_real_escape_string() verwendet. Es wird verwendet, um Zeichen in einer Zeichenfolge zu maskieren, die dann in einer SQL-Abfrage verwendet wird. Als Parameter werden ein Verbindungsobjekt und eine zu maskierende Zeichenfolge benötigt.

Daher verwenden wir das Zeichen-Escape tatsächlich zweimal: zuerst für den SQL-Ausdruck mit der Funktion mysqli_real_escape_string() und dann für den HTML-Ausdruck mit der Funktion htmlentities(). Dadurch können wir uns gleichzeitig vor zwei Arten von Angriffen schützen: XSS-Angriffe und SQL-Injections.

Kommentare wurden aus dem Blog verschoben

SERGEY
14.09.2016 um 01:25
Guten Tag!
Mich interessiert folgende Frage: Wie lässt sich die Speicherung von Daten und Programmeinstellungen am einfachsten organisieren, ohne eine Datenbank zu verwenden? Ich möchte nicht an MySQL oder Access gebunden sein.

ADMINISTRATOR
14.09.2016 um 22:14
Guten Tag!

Eigenschaften.Einstellungen
App.Config
XML-Datei
Serialisierung
Versuchen Sie, eines davon aus der Liste auszuwählen.

NIKOLAY
16.09.2016 um 02:28
Hallo, wie kann ich die ausgewählte Zeile in dataGridVIew aus dataGridVIew und phpMyAdmin löschen?

PHPMyAdmin? Dies ist nur eine Shell für die Arbeit mit einer Datenbank. Können Sie das erklären?

NIKOLAY
18.09.2016 um 02:24
Es ist erforderlich, dass die ausgewählte Zeile aus der DataGridView und aus der Datenbank gelöscht wird.

ADMINISTRATOR
19.09.2016 um 07:00 Uhr
So löschen Sie eine Zeile in einer MySQL-Datenbank – Artikel hinzugefügt.

NIKOLAY
20.09.2016 um 09:20 Uhr
Vielen Dank.

DIMA
20.09.2016 um 10:24
Hallo, ist es möglich, diese Methode nicht über DataGridView, sondern über ComboBox zu implementieren? Wenn das so ist, wie? Danke.

ADMINISTRATOR
22.09.2016 um 03:21 Uhr
Hallo. Beispiel:

GENNADY
22.09.2016 um 18:25
Warum sollte ich solchen Text in die Datenbank System.Windows.Forms.TextBox eingeben, Text: ge

Übrigens wird dieses (ge) am Ende von gene geschrieben, obwohl der Text in den Tabelleneinstellungen angegeben ist. Das Wort von gene hätte weiter passen sollen, ich zeige diese Tabelle in meinem Programm an und es stellt sich heraus, dass es so ist Zeigt mir all diesen unnötigen Text an

ADMINISTRATOR
24.09.2016 um 04:17 Uhr
Höchstwahrscheinlich ist die SQL-Abfrage falsch geschrieben, zum Beispiel:

Geben Sie in textBox1 den Namen ein: Gena.

SQL-Abfrage: „In Tabellennamenwerte einfügen (textBox1, ..)“; Ergebnis: System.Windows.Forms.TextBox

Und Sie müssen Folgendes übergeben: „In Tabellennamenwerte einfügen (textBox1.Text, ..)“;
Ergebnis: Gena

GENNADY
24.09.2016 um 18:41
So ist es. Danke

SERGEY
25.09.2016 um 11:51
Guten Tag. Wie implementiert man das Hinzufügen zur Datenbank über textBox?

ADMINISTRATOR
26.09.2016 um 20:53
Im Prinzip ist alles gleich. Nehmen wir zum Beispiel das allerletzte Beispiel, es benötigt:

//Parameter erstellen und zur Sammlung hinzufügen cmd.Parameters.AddWithValue("@Name", textBox1.Text); cmd.Parameters.AddWithValue("@LastName", textBox2.Text);

Nun erhalten die Parameter: Name und LastName die in den Textfeldern eingegebenen Werte und übertragen diese an die Datenbank

LINARA
27.09.2016 um 17:45
Hallo, wie kann ich eine Zeile in dataGridVIew und phpMyAdmin auswählen?

ADMINISTRATOR
29.09.2016 um 02:06
Ich weiß nicht, wie ich eine Zeile in phpMyAdmin hervorheben kann. Und in dataGridView kann dies beispielsweise über das SelectionChanged-Ereignis erfolgen.

P.S.H.
30.09.2016 um 03:48
2Linara:
Wenn Sie Zeilen auf diese Weise bearbeiten möchten, nehmen Sie ein Tool a la HediSQL, konfigurieren und ändern Sie die Zeilen.

2admin
Guten Tag! Danke für die Materialien – alles ist sehr cool)
Frage: Ich füge Daten mit der folgenden Anfrage hinzu (es ist eine Testanfrage):

String sql = "INSERT INTO users (`FIO`, `Tour`, `Count`, `Cost`, `Date`, `Passport`, `Birth`) VALUES ("Kolyan", "Moscow", "1+1 ", 1100, "2011-11-11", "1111 1111", "9.11.1900");";

Die Daten sind ok eingegeben, aber in der Datenbank (MySQL) erscheint statt des kyrillischen Alphabets „????“.

Visual Studio sagt, dass System.String eine Unicode-Sequenz ist.

Habe auch versucht:

ALTER DATABASE `test` COLLATE „koi8r_general_ci“; ALTER TABLE `users` COLLATE="koi8r_general_ci"; ALTER DATABASE `test` COLLATE "utf8_unicode_ci"; ALTER TABLE `users` COLLATE="utf8_unicode_ci";

Aber es hilft nicht...
Was kann falsch sein? Unterschiedliche VS- und DB-Kodierungen? Oder was?
Könnten Sie mir sagen, was ich lesen/ändern soll?
Danke

ADMINISTRATOR
01.10.2016 um 09:49 Uhr
Hallo.

In der Datenbank (und in der Tabelle) lautet die Zuordnung utf_general_ci

Gibt es einen solchen Vergleich? Vielleicht utf8_general_ci?

Normalerweise erstellen sie eine MySQL-Datenbank, indem sie den Vergleich utf8_general_ci wählen, sodass es mit dem kyrillischen Alphabet keine Probleme gibt, es sei denn natürlich, Betrüger kommen vom Client zum Server.

Zum Vergleich wird COLLATION verwendet, in diesem Fall ist jedoch die Kodierung (Zeichensatz) wichtig. Daher müssen Sie zunächst sicherstellen, dass es auf dem Server richtig eingestellt ist, beispielsweise in utf8 und nicht in latin1.

Bei der Verbindung über den .net-Connector wird (standardmäßig) latin1 verwendet, daher müssen Sie manchmal explizit die utf8-Kodierung in der Verbindungszeichenfolge angeben:

MySqlConnection mycon; mycon = new MySqlConnection("server=127.0.0.1;uid=vasya;pwd=123;database=test;Charset=utf8;"); //MySqlConnectionStringBuilder: mysqlCSB.CharacterSet = "utf8";

P.S.H.
01.10.2016 um 11:34
Du hast recht, ich habe mich selbst gepinkelt, utf8_general_ci!
Ja, es hat geholfen, ;Charset=utf8;
Vielen Dank!

SERGY
02.10.2016 um 11:02 Uhr
Danke für das Arbeitsbeispiel. Frage
Ich habe ein Textfeld erstellt, in das ich die IP-Adresse der Datenbank eingeben möchte, weiß aber nicht, wie ich diese Daten hier einfügen soll

String conStr = "server=@textBox2;user=test;" +
"Datenbank=Test;Passwort=Test;";
Bitte sagen Sie mir, wie ich Daten aus Textfeldern in einem Windows-Formular in dieses Design einfügen kann ...

ADMINISTRATOR
03.10.2016 um 11:50 Uhr
"[email protected];user=...
Im Allgemeinen ist es besser, Eigenschaften anstelle einer solchen Zeichenfolge zu verwenden, wie in diesem Artikel, oder die Methode String.Format()

OLGA2203
15.05.2017 um 20:14

String Connect = „Server=127.0.0.1;Port=3306;Datenbank=base;Datenquelle=localhost;user=root;“; MySqlConnection con = new MySqlConnection(Connect); con.Open(); //Eine Verbindung zur Datenbank herstellen. MySqlCommand cmd = new MySqlCommand(); cmd.CommandText = @”INSERT INTO tovar(ID,Category,Name,TradeMark,Price,Photo,Size,Color,Material,Count) VALUES (@pr, @Category, @Name, @TradeMark, @Price, @Photo, @Size, @Color, @Material, @Count)“; cmd.Parameters.AddWithValue(“@pr”,counter); cmd.Parameters.AddWithValue(“@Category”, ComboBox1.SelectedItem.ToString()); cmd.Parameters.AddWithValue(“@Name”, textBox1.Text); cmd.Parameters.AddWithValue(“@TradeMark”, textBox2.Text); cmd.Parameters.AddWithValue(“@Price”, Convert.ToInt32(textBox4.Text)); cmd.Parameters.AddWithValue(“@Photo”, textBox3.Text); cmd.Parameters.AddWithValue(“@Size”, textBox6.Text); cmd.Parameters.AddWithValue(“@Color”, textBox5.Text); cmd.Parameters.AddWithValue(“@Material”, textBox8.Text); cmd.Parameters.AddWithValue(“@Count”, Convert.ToInt32(textBox7.Text)); cmd.Connection = con; cmd.ExecuteNonQuery(); MessageBox.Show(“Das Hinzufügen war erfolgreich“, „Das Hinzufügen war erfolgreich“, MessageBoxButtons.OK, MessageBoxIcon.Asterisk);

Der Fehler „Spalte ‚ID‘ darf nicht null sein“ wird angezeigt, ich entferne den Zusatz zur ID-Spalte – das Gleiche wird über die nächste Spalte geschrieben usw.
Wenn ich in VALUES konstante Werte in Klammern eingebe, wird die Zeile zur Datenbank hinzugefügt.
Sagen Sie mir bitte, was ist das Problem? Ich muss genau die über das Formular eingegebenen Daten und Werte in der Datenbank aufzeichnen

Alle Module einer Website oder Webanwendung, bei denen die Eingabe und Aufzeichnung einiger Daten (z. B. Name, Alter, Adresse usw.) erforderlich ist, verwenden eine einfache Funktion in der MySQL-Sprache INSERT INTO `name_base` (Name, Wert1, Wert2 ) WERTE ('Vasya','1','2');

Alle Variablen werden gemäß den von uns in den ersten Klammern festgelegten Werten in die Datenbank eingegeben. Es ist wichtig, die Codierung des Handler-Skripts, der Datenbank und der Konfigurationsdatei zu berücksichtigen. Es empfiehlt sich, die gängigste Kodierung UTF-8 zu verwenden.

Bitte beachten Sie, dass Sie auf zwei Arten in die Datenbank schreiben können.

Erster Weg wenn wir zunächst nicht die Zellnamen der Datenbanktabellen angeben. Dann müssen wir alle Variablen für jede Zelle auflisten, nämlich wie viele Zellen sich in der Datenbanktabelle befinden. Daher sollten viele Variablen in Klammern nach dem VALUE-Wert aufgeführt werden.

Zum Beispiel:
Eine Datenbanktabelle enthält vier Zellen. Das bedeutet, dass nach dem VALUE (..)-Element alle vier Variablen in Klammern aufgeführt werden müssen. Und noch etwas: Wenn die Variable nicht existiert, ist sie beispielsweise ein optionaler Parameter. Dann schreiben wir einfach einen leeren Wert in Anführungszeichen '',

"INSERT INTO `name_base` VALUES (NULL, `".$name."`,``,`2`)"; // der dritte leere Wert wird in Anführungszeichen geschrieben

Diese Anfrage hat jedoch einige kleinere Nachteile. Wenn Sie einer Datenbanktabelle eine oder zwei Zellen hinzufügen, gibt diese Abfrage einen Fehler zurück. Denn bei dieser Methode ist die Auflistung aller Zellen in der Abfrage obligatorisch.

Zweiter Weg Wenn nach einer INSERT INTO `name_base` (...)-Abfrage alle Zellen nach dem Datenbanknamen aufgelistet werden. Ein Beispiel wurde oben bereits besprochen. Wenn Sie es vergessen haben, schreiben wir es noch einmal:

"INSERT INTO `name_base`(`name`,`value`,`value2`) VALUES (NULL, `".$name."`,``,`2`)";

Hier haben wir alle Zellen aufgelistet (Name, Wert1, Wert2). Und wenn Sie der Datenbanktabelle zwei zusätzliche Zellen hinzufügen, muss die Abfragesyntax nicht geändert werden. Aber es sei denn, wir müssen in einer Anfrage sofort die zusätzlichen Variablen hinzufügen, die wir für diese ganz neu erstellten Zellen benötigen.

Dieser Fehler tritt sehr häufig nach einer kleinen Änderung auf der Website auf. Nehmen wir an, der Administrator hat der Datenbank eine zusätzliche Zelle hinzugefügt, sagen wir Status. Der Skriptprozessor hatte jedoch keine Zeit, das Modul zu ändern, oder vergaß es einfach. Allerdings haben einige Websites eine sehr komplexe Struktur und das Finden eines Fehlers kann viel Zeit und Mühe kosten. Daher empfiehlt es sich, die zweite Methode zum Schreiben in die Datenbank zu verwenden. Obwohl diese Art von Fehler häufiger von unerfahrenen Webprogrammierern gemacht wird.

PHP-Eintrag zur MySQL-Datenbank. Praxisbeispiele

Nun kommen wir zum Kern der Sache bei der Arbeit mit Datenbankabfragen. Wir machen alles anhand praktischer Beispiele. Lassen Sie uns ein einfaches Skript erstellen, um Kommentare aufzuzeichnen, die Website-Besucher hinterlassen.

Erstellen wir zunächst eine Tabellennachricht in der Datenbank mit vier Zellen. In die erste Zelle schreiben wir die ID des Kommentars. Die Anzahl der Zeichen in einer Zelle beträgt mit dem Auto-Inkrement-Parameter bis zu zehn Zeichen. Diese automatische Einstellung ändert sich jedes Mal, wenn ein Kommentar zu +1 hinzugefügt wird.

Die nächste Zelle ist der Name des Benutzers. Anzahl der Zeichen – bis zu zweihundert – dreihundert Zeichen Ihrer Wahl, Parameter char. Dann die Kommentarzelle – in diese Zelle geben wir den Text des Kommentars selbst ein. Wenn Sie große Kommentartexte aufzeichnen möchten, dann können Sie den Textparameter einstellen – dann können Sie einfach riesige Texte eingeben, mehr als fünfhunderttausend Zeichen, oder Sie setzen den Tinytext-Parameter, dann passen etwas weniger Zeichen rein, aber das geht etwas schneller arbeiten.

Aber in unserem Fall werden wir bedenken, dass Besucher keine großen Texte schreiben werden. Deshalb beschränken wir uns darauf, zweitausend Zeichen mit dem Parameter varchar aufzuzeichnen, um Zeichenfolgenwerte aufzuzeichnen.

In die letzte Zelle schreiben wir das Datum, an dem der Kommentartext aufgezeichnet wurde. Wir schreiben im numerischen Format in Sekunden und verwenden dabei die Funktion des aktuellen Datums und der aktuellen Uhrzeit time(); Der Einfachheit halber setzen wir die Funktion auf die Variable $time=time(); Und erstellen wir eine Zelle in der Datenbank. Nennen wir es mit dem int-Parameter (für numerische Werte) den gleichen Namen wie time. Schreiben wir uns die Anzahl der Zeichen auf – elf ist besser (mit einem kleinen Spielraum für die Zukunft :-).

Der Datenbank-Dump sieht wie folgt aus:

Tabellenstruktur „msg“ – TABELLE ERSTELLEN, WENN NICHT EXISTIERT „msg“ (`id` int(10) NOT NULL AUTO_INCREMENT, `name` char(250) NOT NULL, `coment` varchar(2000) NOT NULL, `time` int(11) NOT NULL, PRIMARY KEY (`id`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

Das war's, eine Tabelle für Kommentare wurde erstellt. Jetzt schreiben wir ein Formular zum Schreiben eines Kommentars und den Skript-Handler selbst. Der HTML-Code für das Kommentarformular lautet wie folgt.

Und gegeben
. Jetzt reden wir darüber, wie Fügen Sie Bilder über ein Formular mit PHP zur MySQL-Datenbank hinzu.

Erstellen eines Felds in der MySQL-Datenbank, um ein Bild hinzuzufügen

Zunächst möchte ich das sagen Speichern von Bildern in einer MySQL-Datenbank Es ist notwendig, eines der Tabellenfelder als Derivat des BLOB-Typs zu definieren.

Die Abkürzung BLOB steht für Binary Large Object. Der BLOB-Datenspeichertyp bietet mehrere Optionen:

  • TINYBLOB – Kann bis zu 255 Bytes speichern
  • BLOB kann bis zu 64 Kilobyte an Informationen speichern
  • MEDIUMBLOB – bis zu 16 Megabyte
  • LONGBLOB bis zu 4 Gigabyte

Für Speichern einer Bilddatei in einer Datenbank Sie müssen die Datei in eine Variable einlesen und eine Abfrage erstellen, um Daten zur Tabelle hinzuzufügen.

Vorbereiten eines Formulars auf der Seite, um ein Bild zur MySQL-Datenbank hinzuzufügen

In meinem Fall war die Aufgabe Fügen Sie der Datenbank über ein Formular mit PHP zwei Bilder hinzu. Wir haben ein Formular mit zwei Feldern und einer Schaltfläche zum Senden:

form name=“form1″ method=“post“ action=“add_image.php“
enctype="multipart/form-data"

Ich möchte Sie daran erinnern, dass das Attribut Aktion Gibt die Datei an, die das Laden der Bilddateien übernimmt. Attribut enctype Gibt an, wie der Formularinhalt codiert ist und Informationen zum Datei-Upload. Erfahren Sie, wie Sie das Attribut richtig ausfüllen enctype vermeiden .

Notiz: Die Unterstützung für das Hochladen mehrerer Dateien wurde in Version 3.0.10 eingeführt.

Schreiben von PHP-Code zum Speichern eines Bildes in einer MySQL-Datenbank

Da wir zwei Dateien im Attribut senden Name Nach dem Wort geben wir „userfile“ in eckigen Klammern an. Dies macht deutlich, dass wir mehrere Dateien mithilfe eines Arrays senden, das die Dateiattribute enthält:

$_FILES['userfile']['name']

Der ursprüngliche Dateiname auf dem Client-Computer.

$_FILES['userfile']['type']

Der MIME-Typ der Datei, sofern der Browser diese Informationen bereitgestellt hat.
Beispiel: „image/gif“ .

$_FILES['userfile']['size']

$_FILES['userfile']['tmp_name']

Temporärer Dateiname, unter dem die heruntergeladene Datei auf dem Server gespeichert wurde.

Wie erhalte ich die Werte jeder Datei?

Angenommen, Dateien mit den Namen /home/test/1.jpg und /home/test/2.jpg werden gesendet.

In diesem Fall $_FILES[‘userfile’][‘name’]
enthält den Wert 1.jpg,
und $_FILES[‘userfile’][‘name’]
- Wert 2.jpg

Ebenso enthält $_FILES[‘userfile’][‘size’] den Dateigrößenwert 1.jpg und so weiter. Schauen wir uns nun den Code der Datei add_image.php an, der im Formularattribut angegeben wurde Aktion.

1024*1024||$image_size==0) ( $ErrorDescription="Jedes Bild sollte 1 MB nicht überschreiten! Das Bild kann nicht zur Datenbank hinzugefügt werden."; return ""; ) // Wenn die Datei angekommen ist, dann prüfen Sie, ob die Grafik // es (aus Sicherheitsgründen) if(substr($_FILES["userfile"]["type"][$num], 0, 5)=="image") ( //Lesen Sie den Inhalt der Datei $image=file_get_contents($_FILES ["userfile"]["tmp_name"][$num]); //Escape-Sonderzeichen im Dateiinhalt $image=mysql_escape_string($image); return $image; )else( ErrorDescription= „Sie haben kein Bild hochgeladen, daher kann es nicht hinzugefügt werden.“; return „“; ) )else( $ErrorDescription="Sie haben kein Bild hochgeladen, das Feld ist leer, daher kann die Datei nicht zur Datenbank hinzugefügt werden. "; return ; ) return $image; ) ?>

In diesem Artikel haben wir darüber gesprochen, wie man ein Bild in einer MySQL-Datenbank speichert , mit PHP.

In dieser Lektion lernen wir, wie man vom Benutzer in ein Formular eingegebene Daten in eine MySql-Datenbank eingibt. Sie erfahren, wie Sie über Webseitencode eine Verbindung zu einer MySql-Datenbank herstellen und wie Sie Daten verarbeiten und in die Datenbank eingeben.


In der letzten Lektion habe ich Ihnen erklärt, wie Sie Denver auf Ihrem Computer installieren, wie Sie Ihre eigene Datenbank erstellen, einen Benutzer dafür, wie Sie eine Tabelle in der Datenbank erstellen und wir haben sie mit einem Datensatz gefüllt.

In dieser Lektion erstellen wir ein HTML-Dokument zur Eingabe von Benutzerinformationen sowie eine PHP-Datei, die diese Informationen verarbeitet, die Daten verarbeitet, eine Verbindung zur MySql-Datenbank herstellt und dort neue Datensätze einfügt.

Lassen Sie uns den Worten Taten folgen lassen.

Hinzufügen von Benutzerdaten zur MySql-Datenbank von einer Webseite

Erster Schritt: Erstellen Sie ein HTML-Formular für die Dateneingabe

Von Anfang an müssen wir uns auf die Arbeit mit PHP, MySql und das Testen des geschriebenen Codes auf dem lokalen Computer vorbereiten. Dafür:

1. Starten Sie Denwer auf Ihrem Computer.

2. Öffnen Sie die von Denver erstellte virtuelle Festplatte (meine ist beispielsweise Laufwerk „Z“). Öffnen Sie es, dann: home – localhost – www – erstellen Sie dort einen neuen Ordner und geben Sie ihm einen Namen (ich nenne ihn „db1“).

3. Wenn Sie in Adobe Dreamweaver arbeiten, dann gehen Sie in den Site-Manager, klicken Sie dort auf die Schaltfläche „Neu“, wählen Sie als Pfad den Pfad zum neu erstellten Ordner aus, im Feld darüber können Sie der Site einen Namen geben, dann klicken Speichern – Fertig. Nach all dem wird Ihr Ordner im rechten Bereich von Adobe Dreamweaver angezeigt.

1. Jetzt erstellen wir eine reguläre HTML-Datei (nennen wir sie info_form.html und speichern sie im neu erstellten db1-Ordner) und schreiben dort den Formularcode zur Eingabe von Informationen. In unserer Benutzertabelle der new_db-Datenbank gibt es 4 Felder, die der Benutzer ausfüllen kann (das ID-Feld wird automatisch ausgefüllt). Auf dieser Grundlage können Sie Code wie diesen erstellen:

Unbenanntes Dokument












Hier im Parameter „action“ unseres Formulars wird die Datei registriert form.php. Als nächstes erstellen wir die Handler-Datei.

Lassen Sie uns auch eine style.css-Datei erstellen, um unser Formular zu formatieren. Es ist bereits im Code enthalten, Sie müssen es also nur noch erstellen, im selben Ordner wie die HTML-Datei ablegen und den folgenden Code hineinschreiben:

Body(width:400px; margin:0 auto; background:#F8F4B6;) label(display: block; float: left; width: 150px; padding: 0 10px; margin: 18px 0 0; text-align: right;) # einreichen(float:right; margin:5px 50px 10px 0;)

Das Formular sieht nun so aus:

Wenn Sie jedoch Daten eingeben und versuchen, das Formular abzusenden, wird eine Fehlermeldung angezeigt, da im Skriptverzeichnis keine Datei „form.php“ vorhanden ist.

Das Erstellen einer Handler-Datei ist unsere nächste Aufgabe.

2. Gehen wir in den Ordner db1 Erstellen Sie einen Ordner mit dem Namen „Skripte“. Darin speichern wir alle unsere Skripte für die Interaktion mit der MySql-Datenbank.

Sobald der Ordner erstellt ist, erstellen Sie eine neue PHP-Datei und speichern Sie diese im Skriptordner unter dem Namen form.php.

Bevor Sie jedoch direkt mit der Arbeit an der Informationsverarbeitungsdatei beginnen können, müssen Sie sich zunächst mit unserer Datenbank verbinden. Ich schlage vor, dafür eine separate Datei zu erstellen und hier ist der Grund:

Höchstwahrscheinlich müssen Sie in Ihrem Projekt von mehr als nur einer Datei aus eine Verbindung zur MySql-Datenbank herstellen. Typischerweise interagieren verschiedene Projektdateien mit der Datenbank.
Es ist sehr unpraktisch, in jeder dieser Dateien denselben Code für die Verbindung zur Datenbank zu schreiben. Und wenn es beispielsweise 50 solcher Dateien gibt und Sie eines schönen Tages das Passwort für den Benutzer ändern, müssen Sie alle diese 50 Dateien durchsuchen und in jeder einzelnen eine Korrektur vornehmen.
Es ist viel bequemer, eine separate Datei für die Verbindung zu verwenden, die mit jeder der Dateien verbunden wird, bei denen eine Verbindung zur MySql-Datenbank bestehen soll. In diesem Fall müssen Sie nur Korrekturen an einer Datei vornehmen.

Erstellen wir also eine neue PHP-Datei, nennen wir sie connect.php und legen Sie es im Skriptordner ab. Darin schreiben wir den Verbindungscode zu unserer MySql-Datenbank sowie den Code, der Fehler meldet, wenn sie auftreten. Bitte beachten Sie, dass Sie als Parameter Ihren Benutzernamen, Ihr Passwort und Ihren Datenbanknamen eingeben müssen. Der Host muss localhost sein.

Fehler beim Herstellen der Verbindung zur Datenbank! " . MySQL-Fehler() . "

"); mysql_select_db("new_db")//Parameter in Klammern ("Name der Datenbank, zu der wir eine Verbindung herstellen") oder die("

Fehler bei der Datenbankauswahl! ". MySQL-Fehler() ."

"); ?>

Gehen wir nun zur Datei form.php und fügen die Datei connect.php mit dem folgenden Code ein:

Wenn Sie jetzt versuchen, das Formular abzusenden, wird nach dem Absenden eine leere Webseite angezeigt. Das ist normal, da wir uns gerade erst mit der Datenbank verbunden haben und vorerst nichts anderes ausgeben.

Wenn Sie eine Fehlermeldung sehen, überprüfen Sie, ob alle Parameter korrekt sind (Benutzername, Passwort, Hostname: localhos, Datenbankname) und stellen Sie außerdem sicher, dass Ihr Denver aktiviert ist.

3. Wir haben erfolgreich eine Verbindung zur MySql-Datenbank hergestellt und benötigen jetzt Folgendes Übernehmen Sie die im Formular eingegebenen Daten in unseren Dateiverwalter. Dabei helfen uns die „Name“-Attribute, die im HTML-Dokument vorhanden sind.

Um die Daten zu erhalten, verwenden wir eine spezielle PHP-Variable, die uns alle Informationen aus dem Webformular liefert. Diese Variable heißt „$_REQUEST“.

Schreiben Sie den folgenden Code in die Datei form.php, nachdem Sie die Datei connect.php verbunden haben:

$first_name = $_REQUEST["first_name"]; $last_name = $_REQUEST["last_name"]; $email = $_REQUEST["email"]; $facebook = $_REQUEST["facebook"];

4. Wir haben die Daten in der Datei erhalten und in Variablen eingegeben. Jetzt brauchen Sie Senden Sie diese Daten an unsere MySQL-Datenbanktabelle. Dazu müssen Sie den folgenden Code schreiben:

$insert_sql = „INSERT INTO Benutzer (Vorname, Nachname, E-Mail, Facebook)“ . "VALUES("($first_name)", "($last_name)", "($email)", "($facebook)");"; mysql_query($insert_sql);

Hier formulieren wir zunächst eine Abfrage, die besagt, dass wir die entsprechenden Variablen in die entsprechenden Felder der Tabelle „Benutzer“ einfügen müssen. Wir fügen diese Abfrage in die Variable „$insert_sql“ ein. Und dann führen wir diese Abfrage mit der Spezialfunktion mysql_query aus.

Wenn Sie nun das Formular ausfüllen und abschicken und sich dann die Tabelle „Benutzer“ Ihrer Datenbank ansehen, sehen Sie nach dem Absenden dort einen neuen Datensatz.

5. Wir haben einen neuen Datensatz von einer Webseite in eine MySql-Datenbanktabelle eingefügt. Jetzt möchte ich ein wenig auf das Format eingehen, in dem unsere Daten eingefügt werden.

Erstens müssen Sie darauf achten, dass eine Person, die ein Formular ausfüllt, am Anfang der Eingabe von Informationen möglicherweise unnötige Leerzeichen einfügt. Sie müssen beschnitten werden.

Zweitens haben wir ein Facebook-Feld. Wenn wir diese Informationen später als Link anzeigen möchten, müssen wir sicherstellen, dass die Daten in diesem Feld im richtigen Format gespeichert werden (d. h. „http://www.facebook.com/facebook-Kennung“). Der Benutzer wird diese Daten jedoch nicht immer so eingeben, wie wir es benötigen. Er kann eingeben: „www.facebook.com/facebook id“, „facebook.com/facebook id“ oder einfach „/facebook id“.

Diese Situationen sollten vermieden werden. Dazu passen wir unseren Code an. Wir werden mögliche zusätzliche Leerzeichen mithilfe der Funktion kürzen trimmen, und die Funktion prüft die Richtigkeit der eingegebenen URL für Facebook preg_match. Somit sieht der gesamte Code der form.php-Datei so aus:

Unbenanntes Dokument Ein neuer Datensatz wurde in die Datenbank eingefügt!

"; ?>

Über die Funktion preg_match:
Dies ist eine Funktion zur Suche mit regulären Ausdrücken.

Der erste Parameter in Klammern ist ein regulärer Ausdruck, der zweite ist die Zeichenfolge, nach der gesucht werden soll.

Die Funktion gibt nur die erste Übereinstimmung zurück: 0 – wenn es keine Übereinstimmungen gibt, 1 – wenn es eine Übereinstimmung gibt.

Versuchen Sie nun, das Formular absichtlich auszufüllen, indem Sie zu Beginn des Ausfüllens eines der Felder unnötige Leerzeichen einfügen und die Facebook-Adresse ohne http:// eingeben oder sogar nur die Facebook-Kennung eingeben. Senden Sie eine Anfrage und gehen Sie dann in die Datenbank und Sie werden sehen, dass die Daten trotz der nicht ganz korrekten Füllung genau das Formular haben, das wir brauchen.

Hier beende ich diese Lektion. Sie können alle Dateien dieser Lektion im Quellcode herunterladen (vergessen Sie nur nicht, die Parameter in der Datei connect.php in Ihre eigenen zu ändern).

Und in der nächsten Lektion lernen wir, wie man Informationen aus einer MySql-Datenbank extrahiert, die erforderlichen Datensätze auswählt und sie auf dem Bildschirm anzeigt. Um die nächste Lektion nicht zu verpassen, abonnieren Sie Blog-Updates mit dem unten angezeigten Abonnementformular.

Hinterlassen Sie Ihre Kommentare und teilen Sie sie über die Social-Media-Buttons mit Freunden.

Viel Glück und bis zur nächsten Lektion!

gastroguru 2017