So senden Sie Daten in PHP an MySQL

WBOY
Freigeben: 2016-08-08 09:33:47
Original
872 Leute haben es durchsucht

So senden Sie Daten in PHP an MySQL

Sie sollten mit HTML-Formularen vertraut sein. Der folgende Code ist ein sehr einfaches HTML-Formular:



< Körper>
< form action=submitform.php3 method=GET>
Nachname: < input type=text name=first_name size=25 maxlength=25>
Name: < input type=text name=last_name size=25 maxlength=25>
< p>

< /form>
< /body>
< /html>
Wenn Sie Daten eingeben und auf die Schaltfläche „Senden“ klicken, sendet dieses Formular die Daten an „submitform.php3“. Dieses PHP-Skript verarbeitet dann die empfangenen Daten. Hier ist der Code von subscribeform.php3:


< Körper>
< ?php

MySQL_connect (localhost, Benutzername, Passwort);


mysql_select_db (Datenbankname);
mysql_query ("INSERT INTO Tabellenname (Vorname, Nachname)

VALUES ('$first_name', '$last_name')

");

PRint ($first_name);

drucken (" ");
print ($last_name);

print ("< p>");
print („Vielen Dank für das Ausfüllen des Registrierungsformulars“);
?>
< /body>
< /html>
Der „Benutzername“ und das „Passwort“ in der dritten Zeile des Codes stellen Ihre Kontonummer bzw. Ihr Passwort für die Anmeldung bei der MySQL-Datenbank dar. „dbname“ in der fünften Zeile stellt den Namen der MySQL-Datenbank dar. „tablename“ in Zeile 13 ist der Name einer Tabelle in der Datenbank.

Wenn Sie auf „Senden“ klicken, wird der von Ihnen eingegebene Name auf einer neuen Seite angezeigt. Schauen Sie sich die URL-Leiste des Browsers noch einmal an. Der Inhalt sollte so aussehen:

… /submitform.php3?first_name=Fred&last_name=Flintstone

Da wir die Formular-GET-Methode verwenden, werden die Daten über die URL an subscribeform.php3 übertragen. Offensichtlich weist die GET-Methode Einschränkungen auf. Wenn viele Inhalte übertragen werden müssen, kann GET nicht verwendet werden, sondern nur die POST-Methode. Aber egal welche Methode verwendet wird, wenn die Datenübertragung abgeschlossen ist, erstellt PHP automatisch für jedes Feld im Formular eine Variable, die mit ihrem Namen (Namensattribut des Formulars) übereinstimmt.

PHP-Variablen beginnen alle mit einem Dollarzeichen. Auf diese Weise gibt es während der Verarbeitung des Submitform.php3-Skripts zwei Variablen, $first_name und $last_name. Der Inhalt der Variablen ist das, was Sie eingeben.

Lassen Sie uns prüfen, ob der von Ihnen eingegebene Name tatsächlich in der Datenbank eingetragen ist. Starten Sie MySQL und geben Sie an der mysql>-Eingabeaufforderung ein:

mysql> select * from tablename;
Sie sollten in der Lage sein, eine Tabelle mit dem Inhalt zu erhalten, den Sie gerade eingegeben haben:

------------ ------------

|. Vorname |. Nachname |
------------ ------------

|. Liu |. Rufeng

------------ ------------

1 Reihe im Satz (0,00 Sek.)

Lassen Sie uns analysieren, wie subscribeform.php3 funktioniert:

Die ersten beiden Zeilen des Skripts lauten:

mysql_connect (localhost, Benutzername, Passwort);


mysql_select_db (Datenbankname);
Diese beiden Funktionsaufrufe werden zum Öffnen der MySQL-Datenbank verwendet. Die Bedeutung der spezifischen Parameter wurde gerade erwähnt.

Die folgende Zeile führt eine SQL-Anweisung aus:

mysql_query ("INSERT INTO Tabellenname (Vorname, Nachname)

VALUES ('$first_name', '$last_name')

");

Die Funktion mysql_query wird verwendet, um eine SQL-Abfrage für die ausgewählte Datenbank auszuführen. Sie können jede SQL-Anweisung in der Funktion mysql_query ausführen. Die auszuführende SQL-Anweisung muss als Zeichenfolge in doppelte Anführungszeichen gesetzt werden, und die darin enthaltenen Variablen müssen in einfache Anführungszeichen gesetzt werden.

Eines ist zu beachten: MySQL-Anweisungen müssen mit einem Semikolon (;) enden, und das Gleiche gilt für eine Zeile PHP-Code, MySQL-Anweisungen in PHP-Skripten dürfen jedoch keine Semikolons haben. Das heißt, wenn Sie an der mysql>-Eingabeaufforderung einen MySQL-Befehl eingeben, sollten Sie ein Semikolon hinzufügen:

INSERT INTO Tabellenname (Vorname, Nachname)

VALUES ('$first_name', '$last_name');

Wenn dieser Befehl jedoch in einem PHP-Skript vorkommt, muss das Semikolon entfernt werden. Der Grund dafür ist, dass einige Anweisungen, wie zum Beispiel SELECT und INSERT, mit oder ohne Semikolon funktionieren. Es gibt jedoch einige Anweisungen, z. B. UPDATE, die nicht funktionieren, wenn Sie ein Semikolon hinzufügen. Um Ärger zu vermeiden, denken Sie einfach an diese Regel.

So extrahieren Sie Daten aus MySQL mit PHP

Jetzt erstellen wir ein weiteres HTML-Formular, um diese Aufgabe auszuführen:


< Körper>
< form action=searchform.php3 method=GET>
Bitte geben Sie Ihre Suchanfrage ein:

< p>
Nachname: < input type=text name=first_name size=25 maxlength=25>
< p>
Name: < input type=text name=last_name size=25 maxlength=25>
< p>

< /form>
< /body>
< /html>
Ebenso muss ein PHP-Skript vorhanden sein, um dieses Formular zu verarbeiten. Erstellen wir eine searchform.php3-Datei:


< Körper>
< ?php

mysql_connect (localhost, Benutzername, Passwort);


mysql_select_db (Datenbankname);
if ($first_name == "")

{$first_name = '%';}

if ($last_name == "")

{$last_name = '%';}

$result = mysql_query ("SELECT * FROM Tabellenname

WHERE vorname LIKE '$vorname%'

UND nachname LIKE '$last_name%'

");

if ($row = mysql_fetch_array($result)) {

mach {

print $row["first_name"];
drucken (" ");
print $row["last_name"];
print ("< p>");
} while($row = mysql_fetch_array($result));

} else {print „Leider wurden in unserer Datenbank keine passenden Datensätze gefunden.“;}

?>
< /body>
< /html>
Wenn Sie den Inhalt, den Sie abrufen möchten, in das Formular eingeben und auf die Schaltfläche ABSENDEN klicken, gelangen Sie auf eine neue Seite, auf der alle passenden Suchergebnisse aufgelistet sind. Schauen wir uns an, wie dieses Skript die Suchaufgabe abschließt.

Die vorherigen Anweisungen sind die gleichen wie oben erwähnt. Stellen Sie zunächst eine Datenbankverbindung her und wählen Sie dann die Datenbank und die Datentabelle aus. Diese sind für jede Datenbankanwendung erforderlich. Dann gibt es mehrere Aussagen wie diese:

if ($first_name == "")

{$first_name = '%';}

if ($last_name == "")

{$last_name = '%';}

Mithilfe dieser Zeilen wird überprüft, ob jedes Feld des Formulars leer ist. Achten Sie auf die beiden Gleichheitszeichen, da der größte Teil der PHP-Syntax aus der C-Sprache abgeleitet ist und die Verwendung des Gleichheitszeichens hier dieselbe ist wie in C: Ein Gleichheitszeichen ist ein Zuweisungszeichen, und zwei Gleichheitszeichen repräsentieren die Logik Gleichwertigkeit. Es ist auch zu beachten, dass, wenn die Bedingung nach IF wahr ist, die nachfolgend auszuführenden Anweisungen in „{“ und „}“ platziert werden und nach jeder Anweisung ein Semikolon hinzugefügt werden muss, um das Ende der Anweisung anzuzeigen.

Das Prozentzeichen % ist ein Platzhalterzeichen in der SQL-Sprache. Nachdem Sie einen Punkt verstanden haben, sollten Sie die Bedeutung dieser beiden Zeilen kennen: Wenn das Feld „VORNAME“ leer ist, werden alle VORNAMEN aufgelistet. Die nächsten beiden Sätze haben die gleiche Bedeutung.

$result = mysql_query ("SELECT * FROM Tabellenname

WHERE vorname LIKE '$vorname%'

AND last_name LIKE '$last_name%'"

");

Diese Zeile erledigt den größten Teil der Sucharbeit. Wenn die Funktion mysql_query eine Abfrage abschließt, gibt sie ein Integer-Flag zurück.

Die Abfrage wählt aus allen Datensätzen diejenigen Datensätze aus, deren Spalte „Vorname“ mit der Variablen „$first_name“ übereinstimmt und deren Werte in der Spalte „last_name“ und der Variablen „$last_name“ ebenfalls identisch sind, fügt sie in den temporären Datensatz ein und verwendet die zurückgegebene Ganzzahl als die Marke dieses Rekordsatzes.

if ($row = mysql_fetch_array($result)) {

mach {

print $row["first_name"];
drucken (" ");
print $row["last_name"];
print ("< p>");
} while($row = mysql_fetch_array($result));

} else {print „Leider wurden in unserer Datenbank keine passenden Datensätze gefunden.“;}

Dies ist der letzte Schritt, der Anzeigeteil. Die Funktion mysql_fetch_array extrahiert zunächst den Inhalt der ersten Zeile des Abfrageergebnisses und zeigt ihn dann mit der PRINT-Anweisung an. Der Parameter dieser Funktion ist das Integer-Flag, das von der Funktion mysql_query zurückgegeben wird. Nachdem mysql_fetch_array erfolgreich ausgeführt wurde, bewegt sich der Datensatzzeiger automatisch nach unten, sodass bei erneuter Ausführung von mysql_fetch_array der Inhalt der nächsten Datensatzzeile abgerufen wird.

Die Array-Variable $row wird von der Funktion mysql_fetch_array erstellt und mit den Abfrageergebnisfeldern gefüllt. Jede Komponente des Arrays entspricht jedem Feld des Abfrageergebnisses.

Wenn ein passender Datensatz gefunden wird, ist die Variable $row nicht leer und die Anweisung in den geschweiften Klammern wird ausgeführt:

mach {

print $row["first_name"];
drucken (" ");
print $row["last_name"];
print ("< p>");
} while($row = mysql_fetch_array($result));

Dies ist eine do ... while-Schleife. Der Unterschied zur while-Schleife besteht darin, dass sie zunächst den Schleifenkörper ausführt und dann prüft, ob die Schleifenbedingung erfüllt ist. Da wir bereits wissen, dass der Schleifenkörper mindestens einmal ausgeführt werden muss, wenn der Datensatz nicht leer ist, sollten wir do...while anstelle der while-Schleife verwenden. In geschweiften Klammern steht der Rumpf der auszuführenden Schleife:

print $row["first_name"];
drucken (" ");
print $row["last_name"];
print ("< p>");
Im nächsten Schritt wird geprüft, ob die while-Bedingung erfüllt ist. Die Mysql_fetch_array-Funktion wird erneut aufgerufen, um den Inhalt des aktuellen Datensatzes abzurufen. Dieser Prozess läuft in einer Schleife weiter, wenn kein nächster Datensatz vorhanden ist, gibt mysql_fetch_array „false“ zurück, die Schleife endet und der Datensatz wird vollständig durchlaufen.

Das von mysql_fetch_array($result) zurückgegebene Array kann nicht nur über den Feldnamen aufgerufen werden, sondern kann wie ein allgemeines Array auch durch Indizes referenziert werden. Auf diese Weise kann der obige Code auch so geschrieben werden:

print $row[0];

drucken (" ");
$row[1] drucken;

print ("< p>");
Wir können die Echo-Funktion auch verwenden, um diese vier Aussagen kompakter zu schreiben:

echo $row[0], " ", $row[1], "< p>";
Wenn kein passender Datensatz gefunden wird, gibt es in $row keinen Inhalt und die else-Klausel der if-Anweisung wird aufgerufen:

else {print „Leider wurden in unserer Datenbank keine passenden Datensätze gefunden.“;}

Das Obige stellt vor, wie man Daten in PHP an MySQL sendet, einschließlich aller Aspekte. Ich hoffe, dass es für Freunde hilfreich ist, die sich für PHP-Tutorials interessieren.


Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage