Kann mir bitte jemand sagen, was zu meiner Anfrage falsch ist. Ich habe Textfeld , um den Insassennamen zu aktualisieren, aber es funktioniert nicht, nur Status funktioniert.
Verwenden Sie direkte MySql SQL nicht mit diesen Sonderzeichen `
String query =„UPDATE rooms
SET occupantname
= ' "+ txtFirstNames.getText() +"', status
= '"+ gOccupied +"' WO roomnumber = "+ CBRoomNumber.getSelectedItem(); Blockquote
instated Verwendung unter SQL
String query = "?? UPDATE Zimmer SET occupantname =, status = WHERE Zimmernummer =";
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class Main {
private static PreparedStatement preparedStmt = null;
private static Connection connection = null;
public static void main(String[] args) {
String gOccupied = "Occupied";
String occupantname = txtFirstNames.getText();
String query = "UPDATE rooms SET occupantname = ? , status= ? WHERE roomnumber = ?";
try {
executeSQlquery(query, occupantname, gOccupied, "Updated");
} catch (Exception e) {
e.printStackTrace();
}
}
private static void executeSQlquery(String query, String occupantname, String gOccupied, String status) throws SQLException {
try {
// create a java mysql database connection
String myDriver = "org.mysql.Driver";
String myUrl = "jdbc:mysql://localhost/test";
Class.forName(myDriver);
connection = DriverManager.getConnection(myUrl, "username", "password");
preparedStmt = connection.prepareStatement(query);
preparedStmt.setString(1, occupantname);
preparedStmt.setString(2, gOccupied);
preparedStmt.setInt(3, 101);
// execute the java preparedstatement
preparedStmt.executeUpdate();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} finally {
//finally block used to close resources
if (preparedStmt != null) {
connection.close();
}
if (connection != null) {
connection.close();
}
}
}
}
Im Allgemeinen ist es eine schreckliche Idee, die Sie derzeit tun SQL-Abfragen, die Art und Weise zu konstruieren, da es die Tür für alle Arten von SQL-Injection-Angriffe öffnet. Um dies richtig zu machen, müssen Sie stattdessen vorbereitete Anweisungen verwenden. Dies wird auch alle Arten von Fluchtproblemen lösen, die Sie augenblicklich haben.
SQL select statement with where clause
erhalten Sie einen Fehler? Wenn es dann ist, aktualisieren Sie bitte oben. –
Ich habe keinen Fehler. Es ist nur nur Status wird aktualisiert, aber Insassenname nicht aktualisiert – Francis
Hmm, dann bezweifle ich, dass der Wert von "txtFirstNames.getText()" nicht geändert wird, bitte debuggen Sie, können Sie finden, warum es passiert ist. –