Neu in PHP/MySql - und lerne, indem ich versuche, eine Datenbank zum Speichern einiger String-Einträge zu erstellen.Gibt es eine Möglichkeit, den Benutzer auf einen Eintrag in ... Duplikate Updateeintrag hinzuweisen?
Alles funktioniert gut - ich habe drei Benutzereinträge in meinem Formular: class
, keywords
, usrstring
die meiner Datenbank ohne ein Problem hinzugefügt werden. obwohl
Zwei Fragen:
# 1) Dies ist die MySQL-Funktion Ich verwende:
$sql = "INSERT INTO `reporting` (class, keywords, usrtext) VALUES (\"$class\", \"$keywords\", \"$usrtext\") ON DUPLICATE KEY UPDATE `usrtext` = \"$usrtext\" ";
Aber ich will ein duplicate key update
nur, wenn sowohl das class
und keywords
Spiel eine Reihe . Keine OR-Instanz, bei der die Zeile aktualisiert wird, wenn class
oder keywords
übereinstimmen. Ist das die korrekte Syntax, um die AND-Instanz zu erreichen?
# 2 Ich bin über eine Ajax-Post die Formulardaten zu senden, die mit der Hauptindexseite erneut zurückfliessen wie folgt:
$("#formdata").submit(function(e) {
var url = "posted.php"; // the script where you handle the form input.
e.preventDefault(); // avoid to execute the actual submit of the form.
$.ajax({
type: "POST",
url: url,
data: $("#formdata").serialize(), // serializes the form's elements.
success: function(data)
{
window.location.href = 'index.php?=successfullyadded';
alert(data) ;
$("#formdata")[0].reset(); // reset form and clear all hidden inputs
}
});
});
Wie kann ich den Prozess unterbreche einen Alarm erstellen/Aufforderung auf der ursprünglichen Formularseite, so dass der Benutzer über den doppelten Eintrag benachrichtigt wird und eine Option erhält, um den zu löschenden Eintrag weiterhin zu aktualisieren (geben Sie ihm die Möglichkeit, die class
oder keywords
vor der Eingabe zu ändern?
** WARNUNG **: Wenn Sie nur PHP lernen, bitte, nicht lernen, die veraltete [ 'mysql_query'] (http://php.net/manual/en/function.mysql-query .php) Schnittstelle. Es ist schrecklich und wurde in PHP 7 entfernt. Ein Ersatz wie [PDO ist nicht schwer zu erlernen] (http://net.tutsplus.com/tutorials/php/why-you-should-beusing-phps-pdo- for-database-access /) und ein Leitfaden wie [PHP The Right Way] (http://www.phptherightway.com/) hilft Best Practices zu erklären. Machen Sie ** sicher ** Ihre Benutzer-Parameter sind [richtig maskiert] (http://bobby-tables.com/php) oder Sie werden mit schweren [SQL-Injektion Bugs] (http://bobby-tables.com/)). – tadman
Sie hätten also einen zusammengesetzten Schlüssel (Klasse, Schlüsselwörter), oder? (Obwohl natürlich in einer normalisierten Umgebung würden Sie nie eine Spalte namens Schlüsselwörter haben) – Strawberry
@tadman - Danke für die Warnung und Referenzen. Ich benutze tatsächlich 'mysqli' und habe über das richtige Scrubbing von Eingaben gelesen, bei denen Zeichen entkommen sind (obwohl viele Leute zu implizieren scheinen, dass das Entweichen von Charakter nicht ausreicht). Bis jetzt habe ich nur auf einer xampp localhost-Umgebung geübt, um die Dinge sicher zu halten. – user1837608