Pytania otagowane jako prepared-statement

Prepared Statement (lub sparametryzowana instrukcja) to wstępnie skompilowana instrukcja SQL, która służy do poprawy wydajności i złagodzenia ataków iniekcji SQL. Przygotowane zestawienia są wykorzystywane w wielu popularnych systemach zarządzania relacyjnymi bazami danych.

21
Czy mogę powiązać tablicę z warunkiem IN ()?
Jestem ciekawy, czy możliwe jest powiązanie tablicy wartości z symbolem zastępczym za pomocą PDO. Przypadek użycia tutaj próbuje przekazać tablicę wartości do użycia z IN()warunkiem. Chciałbym móc zrobić coś takiego: <?php $ids=array(1,2,3,7,8,9); $db = new PDO(...); $stmt = $db->prepare( 'SELECT * FROM table WHERE id IN(:an_array)' ); $stmt->bindParam('an_array',$ids); $stmt->execute(); ?> …

30
Alternatywne klauzule PreparedStatement IN?
Jakie są najlepsze obejścia dla używania INklauzuli SQL z instancjami java.sql.PreparedStatement, które nie są obsługiwane dla wielu wartości z powodu problemów związanych z bezpieczeństwem ataku wstrzykiwania SQL: Jeden ?symbol zastępczy reprezentuje jedną wartość, a nie listę wartości. Rozważ następującą instrukcję SQL: SELECT my_column FROM my_table where search_column IN (?) Używanie …

6
Używanie znaku wieloznacznego „like” w przygotowanej instrukcji
Do wykonywania zapytań do bazy danych mysql używam przygotowanych instrukcji. Chcę wdrożyć funkcję wyszukiwania opartą na pewnego rodzaju słowach kluczowych. W tym celu muszę użyć LIKEsłowa kluczowego, tyle wiem. I już wcześniej korzystałem z przygotowanych instrukcji, ale nie wiem, jak tego użyć, LIKEponieważ z poniższego kodu gdzie miałbym dodać 'keyword%'? …

9
W jaki sposób przygotowane instrukcje mogą chronić przed atakami typu SQL injection?
W jaki sposób przygotowane instrukcje pomagają nam zapobiegać atakom typu SQL injection ? Wikipedia mówi: Przygotowane instrukcje są odporne na iniekcję SQL, ponieważ wartości parametrów, które są przesyłane później przy użyciu innego protokołu, nie muszą być poprawnie chronione. Jeśli oryginalny szablon instrukcji nie pochodzi z danych wejściowych zewnętrznych, nie można …

13
Jak mogę uzyskać SQL PreparedStatement?
Mam ogólną metodę Java z następującą sygnaturą metody: private static ResultSet runSQLResultSet(String sql, Object... queryParams) Otwiera połączenie, buduje za PreparedStatementpomocą instrukcji sql i parametrów w queryParamstablicy o zmiennej długości, uruchamia je, buforuje ResultSet(w a CachedRowSetImpl), zamyka połączenie i zwraca zbuforowany zestaw wyników. Mam obsługę wyjątków w metodzie, która rejestruje błędy. …

22
Przygotowane PDO Wstawia wiele wierszy w jednym zapytaniu
Obecnie używam tego typu SQL w MySQL do wstawiania wielu wierszy wartości w jednym zapytaniu: INSERT INTO `tbl` (`key1`,`key2`) VALUES ('r1v1','r1v2'),('r2v1','r2v2'),... Przy odczytach dotyczących PDO, przygotowane instrukcje użytkowania powinny dać mi większe bezpieczeństwo niż statyczne zapytania. Chciałbym zatem wiedzieć, czy możliwe jest wygenerowanie „wstawiania wielu wierszy wartości jednym zapytaniem” z …


1
mysqli_fetch_assoc () oczekuje błędów parametru / wywołania funkcji członkowskiej bind_param (). Jak uzyskać rzeczywisty błąd mysql i go naprawić?
W moim środowisku lokalnym / programistycznym zapytanie MySQLi działa poprawnie. Jednak po przesłaniu go do mojego środowiska hosta internetowego pojawia się ten błąd: Błąd krytyczny: wywołanie funkcji składowej bind_param () na obiekcie niebędącym obiektem w ... Oto kod: global $mysqli; $stmt = $mysqli->prepare("SELECT id, description FROM tbl_page_answer_category WHERE cur_own_id = …


2
Wielokrotne użycie PreparedStatement
w przypadku korzystania z PreparedStatement z jednym wspólnym połączeniem bez puli, czy mogę odtworzyć instancję dla każdej operacji dml / sql, zachowując moc przygotowanych instrukcji? Mam na myśli: for (int i=0; i<1000; i++) { PreparedStatement preparedStatement = connection.prepareStatement(sql); preparedStatement.setObject(1, someValue); preparedStatement.executeQuery(); preparedStatement.close(); } zamiast: PreparedStatement preparedStatement = connection.prepareStatement(sql); for (int …

6
Java: wstaw wiele wierszy do MySQL za pomocą PreparedStatement
Chcę wstawić wiele wierszy jednocześnie do tabeli MySQL, używając języka Java. Liczba wierszy jest dynamiczna. W przeszłości robiłem ... for (String element : array) { myStatement.setString(1, element[0]); myStatement.setString(2, element[1]); myStatement.executeUpdate(); } Chciałbym to zoptymalizować, aby używać składni obsługiwanej przez MySQL: INSERT INTO table (col1, col2) VALUES ('val1', 'val2'), ('val1', 'val2')[, …

5
PreparedStatement setNull (..)
Java PreparedStatement umożliwia jawne ustawienie wartości Null. Ta możliwość to: prepStmt.setNull(parameterIndex, Types.VARCHAR); Czy semantyka tego wywołania jest taka sama, jak w przypadku użycia określonego setType z parametrem null? prepStmt.setString(null); ?


3
Optymalizacja JDBC Oracle: Włącz buforowanie PreparedStatement w aplikacji Spring boot
Mam aplikację REST Spring Boot połączoną z bazą danych Oracle. Używamy JDBC za pomocą JdbcTemplate. Właściwości bazy danych Oracle są uzyskiwane za pomocą następujących 3 ustawień application.properties : spring.datasource.url spring.datasource.username spring.datasource.password Ta aplikacja korzysta z HikariCP. Z witryny HikariCP dowiedziałem się, że ta pula nie buforuje PreparedStatements, ponieważ sterownik JDBC …
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.