Als «prepared-statement» getaggte Fragen

Eine vorbereitete Anweisung (oder parametrisierte Anweisung) ist eine vorkompilierte SQL-Anweisung, die dazu dient, die Leistung zu verbessern und SQL-Injection-Angriffe abzuschwächen. Vorbereitete Anweisungen werden in vielen gängigen relationalen Datenbankverwaltungssystemen verwendet.


30
PreparedStatement IN-Klauselalternativen?
Was sind die besten Problemumgehungen für die Verwendung einer SQL- INKlausel mit Instanzen von java.sql.PreparedStatement, die aufgrund von Sicherheitsproblemen bei SQL-Injection-Angriffen nicht für mehrere Werte unterstützt wird: Ein ?Platzhalter steht für einen Wert und nicht für eine Liste von Werten. Betrachten Sie die folgende SQL-Anweisung: SELECT my_column FROM my_table where …

6
Verwenden des Platzhalters "Gefällt mir" in der vorbereiteten Anweisung
Ich verwende vorbereitete Anweisungen, um MySQL-Datenbankabfragen auszuführen. Und ich möchte eine Suchfunktion implementieren, die auf einer Art Schlüsselwort basiert. Dafür muss ich ein LIKESchlüsselwort verwenden, so viel ich weiß. Und ich habe auch schon vorbereitete Anweisungen verwendet, aber ich weiß nicht, wie ich sie verwenden soll, LIKEweil aus dem folgenden …

9
Wie können vorbereitete Anweisungen vor SQL-Injection-Angriffen schützen?
Wie helfen uns vorbereitete Anweisungen , SQL-Injection- Angriffe zu verhindern? Wikipedia sagt: Vorbereitete Anweisungen sind widerstandsfähig gegen SQL-Injection, da Parameterwerte, die später mit einem anderen Protokoll übertragen werden, nicht korrekt maskiert werden müssen. Wenn die ursprüngliche Anweisungsvorlage nicht von externen Eingaben abgeleitet ist, kann keine SQL-Injection durchgeführt werden. Ich kann …

13
Wie kann ich die SQL eines PreparedStatements abrufen?
Ich habe eine allgemeine Java-Methode mit der folgenden Methodensignatur: private static ResultSet runSQLResultSet(String sql, Object... queryParams) Es öffnet eine Verbindung, erstellt eine PreparedStatementmit der SQL-Anweisung und den Parametern im queryParamsArray variabler Länge, führt sie aus, speichert das ResultSet(in a CachedRowSetImpl) zwischen, schließt die Verbindung und gibt die zwischengespeicherte Ergebnismenge zurück. …

22
PDO Prepared Fügt mehrere Zeilen in eine einzelne Abfrage ein
Ich verwende derzeit diese Art von SQL unter MySQL, um mehrere Wertezeilen in eine einzige Abfrage einzufügen: INSERT INTO `tbl` (`key1`,`key2`) VALUES ('r1v1','r1v2'),('r2v1','r2v2'),... Bei den Lesungen zu PDO sollten die vorbereiteten Anweisungen zur Verwendung eine bessere Sicherheit bieten als statische Abfragen. Ich würde daher gerne wissen, ob es möglich ist, …


1
mysqli_fetch_assoc () erwartet Parameter / Aufruf einer Mitgliedsfunktion bind_param () Fehler. Wie bekomme ich den eigentlichen MySQL-Fehler und behebe ihn?
In meiner lokalen / Entwicklungsumgebung wird die MySQLi-Abfrage ordnungsgemäß ausgeführt. Wenn ich es jedoch auf meine Webhost-Umgebung hochlade, wird folgende Fehlermeldung angezeigt: Schwerwiegender Fehler: Aufruf einer Mitgliedsfunktion bind_param () für ein Nichtobjekt in ... Hier ist der Code: global $mysqli; $stmt = $mysqli->prepare("SELECT id, description FROM tbl_page_answer_category WHERE cur_own_id = …


2
Mehrfaches Wiederverwenden eines PreparedStatements
Kann ich bei Verwendung von PreparedStatement mit einer einzelnen gemeinsamen Verbindung ohne Pool eine Instanz für jede dml / sql-Operation neu erstellen, die die Leistung vorbereiteter Anweisungen beibehält? Ich meine: for (int i=0; i<1000; i++) { PreparedStatement preparedStatement = connection.prepareStatement(sql); preparedStatement.setObject(1, someValue); preparedStatement.executeQuery(); preparedStatement.close(); } anstatt: PreparedStatement preparedStatement = connection.prepareStatement(sql); …

6
Java: Fügen Sie mit PreparedStatement mehrere Zeilen in MySQL ein
Ich möchte mit Java mehrere Zeilen gleichzeitig in eine MySQL-Tabelle einfügen. Die Anzahl der Zeilen ist dynamisch. In der Vergangenheit habe ich ... for (String element : array) { myStatement.setString(1, element[0]); myStatement.setString(2, element[1]); myStatement.executeUpdate(); } Ich möchte dies optimieren, um die von MySQL unterstützte Syntax zu verwenden: INSERT INTO table …

5
PreparedStatement setNull (..)
Java PreparedStatement bietet die Möglichkeit, einen Nullwert explizit festzulegen. Diese Möglichkeit ist: prepStmt.setNull(parameterIndex, Types.VARCHAR); Ist die Semantik dieses Aufrufs dieselbe wie bei Verwendung eines bestimmten setType mit einem Nullparameter? prepStmt.setString(null); ?


8
PHP - Verwenden von PDO mit IN-Klausel-Array
Ich verwende PDO, um eine Anweisung mit einer INKlausel auszuführen , die ein Array für ihre Werte verwendet: $in_array = array(1, 2, 3); $in_values = implode(',', $in_array); $my_result = $wbdb->prepare("SELECT * FROM my_table WHERE my_value IN (".$in_values.")"); $my_result->execute(); $my_results = $my_result->fetchAll(); Der obige Code funktioniert einwandfrei, aber meine Frage ist, …

3
Oracle JDBC-Optimierung: Aktivieren Sie das PreparedStatement-Caching in einer Spring-Boot-Anwendung
Ich habe eine Spring Boot REST-Anwendung, die mit einer Oracle-Datenbank verbunden ist. Wir verwenden JDBC mit JdbcTemplate. Die Oracle-Datenbankeigenschaften werden über diese drei Einstellungen von application.properties abgerufen : spring.datasource.url spring.datasource.username spring.datasource.password Diese Anwendung verwendet das HikariCP. Auf der HikariCP-Website habe ich erfahren, dass dieser Pool PreparedStatements nicht zwischenspeichert, da der …
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.