PreparedStatement

0

Witam

Próbuję w miejsce placeholderów (czyli '?') podstawić string, który podał nam uzytowkownik.
Błąd, który cały czas wyskakuje to :
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '?,?)' at line 1
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

Probowałem róznych metod, wstawiania ? w pojedynczy cudzysłow, podwójny itp., ale bez skutku.


       System.out.println("First name:");
        String first = mReader.readLine();
        System.out.println("Last name:");
        String last = mReader.readLine();

        String insert = "INSERT INTO persons (last, first) VALUES (?,?)";
        PreparedStatement preparedStatement = conn.prepareStatement(insert);
        preparedStatement.setString(1, first);
        preparedStatement.setString(2, last);
        preparedStatement.executeUpdate(insert);
0

Dlaczego czyste JDBC? Zobacz, że jak user trochę poczyta o SQL injection to jesteś bez bazy ;)

1
Burdzi0 napisał(a):

Dlaczego czyste JDBC? Zobacz, że jak user trochę poczyta o SQL injection to jesteś bez bazy ;)

Przecież to prepared statement i zmienne są wiązane to jaki SQL injecton?

1

Zmień ostatnią linijkę z:
preparedStatement.executeUpdate(insert);

na:
preparedStatement.executeUpdate();

0
Arctor75 napisał(a):

Zmień ostatnią linijkę z:
preparedStatement.executeUpdate(insert);

na:
preparedStatement.executeUpdate();

Mistrz! Dzieki!

1 użytkowników online, w tym zalogowanych: 0, gości: 1