Вопросы с тегом «prepared-statement»

Подготовленный оператор (или параметризованный оператор) - это предварительно скомпилированный оператор SQL, который служит для повышения производительности и смягчения атак с использованием SQL-инъекций. Подготовленные операторы используются во многих популярных системах управления реляционными базами данных.

21
Могу ли я связать массив с условием IN ()?
Мне любопытно узнать, возможно ли привязать массив значений к заполнителю с помощью PDO. Вариант использования здесь пытается передать массив значений для использования с IN()условием. Я хотел бы иметь возможность сделать что-то вроде этого: <?php $ids=array(1,2,3,7,8,9); $db = new PDO(...); $stmt = $db->prepare( 'SELECT * FROM table WHERE id IN(:an_array)' ); …

30
PreparedStatement IN предложение альтернативы?
Каковы наилучшие обходные пути для использования предложения SQL INс экземплярами java.sql.PreparedStatement, которое не поддерживается для нескольких значений из-за проблем безопасности атаки SQL-инъекцией: один ?заполнитель представляет одно значение, а не список значений. Рассмотрим следующий оператор SQL: SELECT my_column FROM my_table where search_column IN (?) Использование preparedStatement.setString( 1, "'A', 'B', 'C'" );по …

6
Использование подстановочного знака «как» в подготовленном утверждении
Я использую подготовленные операторы для выполнения запросов к базе данных MySQL. И я хочу реализовать функцию поиска на основе своего рода ключевого слова. Для этого мне нужно использовать LIKEключевое слово, это я много знаю. И я также использовал подготовленные заявления раньше, но я не знаю , как использовать его с …

9
Как подготовленные операторы могут защитить от атак SQL-инъекций?
Как подготовленные операторы помогают нам предотвратить атаки с использованием SQL-инъекций ? Википедия говорит: Подготовленные операторы устойчивы к внедрению SQL, потому что значения параметров, которые передаются позже с использованием другого протокола, не должны быть корректно экранированы. Если исходный шаблон оператора не является производным от внешнего ввода, внедрение SQL невозможно. Я не …

13
Как я могу получить SQL PreparedStatement?
У меня есть общий метод Java со следующей сигнатурой метода: private static ResultSet runSQLResultSet(String sql, Object... queryParams) Он открывает соединение, создает с PreparedStatementпомощью оператора sql и параметров в queryParamsмассиве переменной длины, запускает его, кэширует ResultSet(в a CachedRowSetImpl), закрывает соединение и возвращает кэшированный набор результатов. У меня есть обработка исключений в …

22
PDO Prepared Вставляет несколько строк в одном запросе
В настоящее время я использую этот тип SQL на MySQL, чтобы вставить несколько строк значений в один запрос: INSERT INTO `tbl` (`key1`,`key2`) VALUES ('r1v1','r1v2'),('r2v1','r2v2'),... В чтениях по PDO операторы, подготовленные к использованию, должны обеспечить мне большую безопасность, чем статические запросы. Поэтому я хотел бы знать, возможно ли сгенерировать «вставку нескольких …

10
Как PreparedStatement предотвращает или предотвращает внедрение SQL?
Я знаю, что PreparedStatements избегает / предотвращает внедрение SQL. Как оно это делает? Будет ли окончательный запрос формы, созданный с использованием PreparedStatements, быть строкой или иначе?

1
mysqli_fetch_assoc () ожидает ошибок параметра / вызова функции-члена bind_param (). Как получить актуальную ошибку mysql и исправить ее?
В моей локальной среде / среде разработки запрос MySQLi выполняется нормально. Однако, когда я загружаю его в среду своего веб-хоста, я получаю эту ошибку: Неустранимая ошибка: вызов функции-члена bind_param () для не-объекта в ... Вот код: global $mysqli; $stmt = $mysqli->prepare("SELECT id, description FROM tbl_page_answer_category WHERE cur_own_id = ?"); $stmt->bind_param('i', …


2
Повторное использование PreparedStatement несколько раз
в случае использования PreparedStatement с одним общим соединением без какого-либо пула, могу ли я воссоздать экземпляр для каждой операции dml / sql, сохраняя мощность подготовленных операторов? Я имею в виду: for (int i=0; i<1000; i++) { PreparedStatement preparedStatement = connection.prepareStatement(sql); preparedStatement.setObject(1, someValue); preparedStatement.executeQuery(); preparedStatement.close(); } вместо того: PreparedStatement preparedStatement = …

6
Java: вставьте несколько строк в MySQL с помощью PreparedStatement
Я хочу вставить сразу несколько строк в таблицу MySQL с помощью Java. Количество строк динамическое. Раньше я делал ... for (String element : array) { myStatement.setString(1, element[0]); myStatement.setString(2, element[1]); myStatement.executeUpdate(); } Я хотел бы оптимизировать это, чтобы использовать синтаксис, поддерживаемый MySQL: INSERT INTO table (col1, col2) VALUES ('val1', 'val2'), ('val1', …

5
PreparedStatement setNull (..)
Java PreparedStatement предоставляет возможность явно установить значение Null. Эта возможность: prepStmt.setNull(parameterIndex, Types.VARCHAR); Семантика этого вызова такая же, как при использовании определенного setType с нулевым параметром? prepStmt.setString(null); ?

5
Пример использования bind_result vs get_result
Я хотел бы увидеть пример того, как вызвать using bind_resultvs. get_resultи какова будет цель использования одного над другим. Также плюсы и минусы использования каждого. Какие ограничения в использовании и есть ли разница.

3
Оптимизация JDBC Oracle: включить кэширование PreparedStatement в загрузочном приложении Spring
У меня есть приложение Spring Boot REST, которое подключено к базе данных Oracle. Мы используем JDBC, используя JdbcTemplate. Свойства базы данных Oracle получаются через эти 3 настройки application.properties : spring.datasource.url spring.datasource.username spring.datasource.password Это приложение использует HikariCP. С веб-сайта HikariCP я узнал, что этот пул не кэширует PreparedStatements, потому что драйвер …
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.