Heim > Artikel > Backend-Entwicklung > Holen Sie sich den Eingabewert in HTML in PHP und schreiben Sie ihn in die Datenbank
html:
php:
Der rote Kastenteil in PHP muss den Wert von name="new_title_info" in HTML erhalten , wie soll ich es hier schreiben? Ich habe unten $sql geschrieben, um zu sehen, dass der folgende Wert leer ist. Jetzt fordert die geänderte Methode zur Interpretation des Diagramms auf
Das Problem liegt immer noch in der Zeile $sql="...., wie kann man das ändern?
php:
Der rote Kastenteil in PHP muss den Wert von name="new_title_info" in HTML erhalten , wie soll ich es hier schreiben? Ich habe unten $sql geschrieben, um zu sehen, dass der folgende Wert leer ist. Jetzt fordert die geänderte Methode zur Interpretation des Diagramms auf Das Problem liegt immer noch in der Zeile $sql="...., wie kann man das ändern?
<code>$_POST('key') 在“ ”双引号里面的关联数组不需要加‘ ’单引号 $sql="insert into table() values('$_POST[key]')";</code>
Zuallererst kann Ihre rein handgeschriebene mysql_query einfach von SQL eingefügt werden. Zweitens: Wenn Sie vermuten, dass ein Problem mit der SQL-Anweisung vorliegt, wird empfohlen, zu überprüfen, ob der spezifische Wert den Erwartungen entspricht, einige Gültigkeitsbeurteilungen vorzunehmen und dann die SQL-Anweisung zu formulieren.
Einfach separat zu schreiben
$name = $_POST['new_title_info'];
$class = $_POST['new_class_info'];$sql = "In Tabelle einfügen (xxx,xxx) Werte ($name,$class)";
Wenn Ihre Arbeitsgruppe eine Codeüberprüfung erfordert, werden Sie beschimpft...
Benutzereingabevariablen können wirklich nicht direkt in SQL eingefügt werden...
liegt
Es scheint, dass es auch bei einfachen Anführungszeichen ein Problem gibt.
Drucken Sie die SQL-Anweisung aus und prüfen Sie, ob das Format korrekt ist. Führen Sie sie in MySQL aus und Sie werden das Problem sehen
Es wird nicht funktionieren, wenn Sie einfache Anführungszeichen verwenden, um
so zu zitieren. Einfache Anführungszeichen in
führen keine internen Variablen aus, Sie können sie einfach in doppelte Anführungszeichen ändern. In so vielen Antworten haben einige Leute darauf hingewiesen, dass es ein guter Vorschlag ist, durchinjiziert zu werden. Sie müssen die empfangenen Daten verarbeiten und maskieren, um eine SQL-Injection zu verhindern.
$_POST
PHP
"INSERT INTO Tabellenname (Spalten) Werte({$_POST['key']})",SQL
Nebenbei bemerkt: Alle Benutzereingaben müssen gefiltert und nicht direkt in die Datenbank eingefügt werden
Geschrieben in der Form $_POST[key].
Buchstabieren Sie SQL-Anweisungen nicht direkt, das ist nicht sicher. Um SQL-Injection-Angriffe zu verhindern, müssen Maßnahmen wie Vorverarbeitung ergriffen werden.