Einfügen/aktualisieren der Daten in der MySql-Datenbank mit php
Ich versuche, einfügen/aktualisieren der MySql-Datenbank, je nachdem, ob ein post existiert bereits auf der Datenbank (ich checke das mit einem einzigartigen user_id). Die folgenden Werke:
$select_query = "SELECT * ";
$select_query .= "FROM test ";
$select_query .= "WHERE user_id = '$user_id'";
$check_user_id = mysqli_query($connection, $select_query);
$query = "INSERT INTO test (";
$query .= " user_id, name, message";
$query .= ") VALUES (";
$query .= " '{$user_id}', '{$name}', '{$message}'";
$query .= ")";
$result = mysqli_query($connection, $query);
if ($result) {
echo "Success!";
} else {
die("Database query failed. " . mysqli_error($connection));
}
Jedoch, wenn ich den folgenden code mit einer if/else-Anweisung, funktioniert es nicht mehr, obwohl die Konsole meldet "Erfolg!" (also $result einen Wert hat). Jegliche Hilfe würde sehr geschätzt werden. Danke.
$select_query = "SELECT * ";
$select_query .= "FROM test ";
$select_query .= "WHERE user_id = '$user_id'";
$check_user_id = mysqli_query($connection, $select_query);
if (!$check_user_id) {
$query = "INSERT INTO test (";
$query .= " user_id, name, message";
$query .= ") VALUES (";
$query .= " '{$user_id}', '{$name}', '{$message}'";
$query .= ")";
} else {
$query = "UPDATE test SET ";
$query .= "name = '{$name}', ";
$query .= "message = '{$message}' ";
$query .= "WHERE user_id = '{$user_id}'";
}
$result = mysqli_query($connection, $query);
if ($result) {
echo "Success!";
} else {
die("Database query failed. " . mysqli_error($connection));
}
InformationsquelleAutor sublimepremise | 2013-08-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
So wie ich das verstehe deinen code. Sie versuchen, zu überprüfen, ob die user_id ist in Ihrer Datenbank..
ich machte einen einfachen code, und ich denke, es funktioniert für mich..
InformationsquelleAutor user2593560
mysql_query
gibt die operation Bezeichner, die nicht das tatsächliche Ergebnis. Dies ist der Grund, warum$check_user_id
ist immer wahr, so sind Sie immer versuchen, zu aktualisieren (gar nicht vorhandene!) Zeilen.haben Sie zu "Lesen" das Ergebnis
mysql_query
zum Beispiel durch Verwendungnun es gibt 0 (false) iff es wurden keine Ergebnisse für q
$select_query
InformationsquelleAutor lejlot
Dieser Anweisung geben Sie eine Ressource, um das Ergebnis
$check_user_id = mysqli_query($connection, $select_query);
als Nächstes werden Sie die Prüfung für
if(!$check_user_id)
: diese Bedingung zu false ausgewertet wird, weil die negation!
. Damit Ihre Kondition geht, um dieelse
Teil und und nie in denif
.Den
$result
hat immer Wert, denn Sie nennen es gegen Ende des Skripts.InformationsquelleAutor woofmeow
Da Sie bisher kennen die user_id und der Annahme, dass ein Primärschlüssel in der Tabelle, könnten Sie mit "ON DUPLICATE KEY UPDATE" - Klausel:
Gleiche Ergebnis mit nur einer Abfrage.
Ref: http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html
InformationsquelleAutor juanra
Verwenden Sie den Code für die Daten einfügen in mysql.
InformationsquelleAutor Indrajeet Singh