Как подставить переменную в sql запрос
Перейти к содержимому

Как подставить переменную в sql запрос

  • автор:

Вставка переменных в SQL — запрос. Python3

Подскажите плиз, не могу вставить в SQL-запрос значение в двойных кавычках.

Сам запрос выглядит так:

SELECT family,name FROM violations WHERE processing_state = 2 LIMIT AND violations.last_edit BETWEEN "2015-11-01" AND "2015-11-02") 

Попытка вставить в проекте Python

vs = "2015-11-01" vs2 = "2015-11-02" sql=("SELECT family,name FROM violations WHERE processing_state = 2 LIMIT AND violations.last_edit BETWEEN %s AND %s") cur.execute(sql,(vs,vs2)) 

В итоге получаю ошибку вида

\'AND violations.last_edit BETWEEN \'\\"2015-11-01\\"\' AND \'\\"2015-11-02\\"\'\' at line 1'

Уже и в двойный, и в одинарные кавычки пытался заключать переменные vs и vs2, не помогает(

Для коннекта к БД Использую PyMySQL.

Как вставить переменную в LIKE в sql запросе?

Он работает. Но нужно, чтобы вместо «что нибудь» стояла переменная $search_theme. Она есть, с ней все хорошо.

LIKE '%".$search_theme."%'

Не работает.
Подскажите, пожалуйста, кто знает как правильно написать запрос.
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Как вставить переменную в sql запрос?
Так у меня выскакивают абоненты у которых номер телефона начинается на "5" procedure.

Как в с++ правильно вставить переменную в строку sql запроса?
Есть такой запрос: myQuery->SQL->Text = "SELECT f_department.CODE, f_department.NAME FROM.

Как вместо названия таблицы в sQL-запросе можно подставить переменную, данное название содержащую?
Проблема такая. Каким образом вместо названия таблицы в sQL-запросе можно подставить переменную.

Кто нибудь знает как вставить переменную VB 6.0 в запрос SQL MS Jet?
Subj Data1.RecordSource = ‘SELECT * FROM ObjectDataQuery WHERE ‘& testie &’ = 70′ формат запроса.

576 / 514 / 253
Регистрация: 26.09.2010
Сообщений: 2,603

ЦитатаСообщение от sergey-nv Посмотреть сообщение

$query_theme = «SELECT * FROM profbases_struct_disc
WHERE section = ‘».$row[«id»].»‘ AND disciplin_code = ‘$disciplin_code’ AND theme LIKE ‘%что-нибудь%’ ORDER BY id ASC»;

заменить на

$query_theme = "SELECT * FROM profbases_struct_disc WHERE section = '".$row["id"]."' AND disciplin_code = '".$disciplin_code."' AND theme LIKE '%".$search_theme."%' ORDER BY id ASC";

Добавлено через 3 минуты

ЦитатаСообщение от sergey-nv Посмотреть сообщение

Пробовал так:

так должно работать

Если что-то не работает всегда надо проверять что попадает в запрос и как он выглядит до выполнения, например так:

echo "SELECT * FROM profbases_struct_disc WHERE section = '".$row["id"]."' AND disciplin_code = '".$disciplin_code."' AND theme LIKE '%".$search_theme."%' ORDER BY id ASC";

и дальше смотрим где ошибка, можно напрямую подставить в PhpMyAdmin, там также напишет синтакситеческую ошибку

87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь

Вставить переменную между строк в запросе OPENROWSET
Здравствуйте! Изучаю T-SQL, добрался до linked servers, где связь с excel файлом. Встала задача.

Как в SQL запрос вставить вторую переменную? Одну получается, а вторую нет
Вместо переменной s% ввожу марку провода А-, АС-, АСИ-. и т.д. После дефиса у них число, равное.

Вставить переменную в запрос SQL
Здравствуйте! Почитал похожие темы, пробовал, как там предлагают решение, но все равно получаю.

Как вставить переменную java скрипт в php переменную
Здравия, форумчане! Извиняюсь за некорректность заголовка. Подскажите новичку, есть ли.

Как вставить в переменную текст и переменную вместе?
Вопрос для бывалых программистов наверное простой, но не где пока не нашел ответа. Подскажите.

SQL Server 2000 как в файле sql строковую переменную выполнить как инструкцию
Добрый день! Подскажите пожалуйста, как строковую переменную выполнить как инструкцию, например: .

Как в sql запрос вставить переменную php

Для того чтобы передать переменную в SQL запрос в PHP, можно использовать один из следующих вариантов:

  1. Использовать подготовленные запросы. Это позволяет избежать SQL инъекций и передавать переменные в запрос безопасным способом. Пример:
 $stmt = $pdo->prepare('SELECT * FROM users WHERE email = :email'); $stmt->execute(['email' => $email]); $user = $stmt->fetch(); 
  1. Сформировать строку запроса с помощью конкатенации строк и передать ее в функцию выполнения запроса. Пример:
 $sql = "SELECT * FROM users WHERE email = '" . $email . "'"; $result = mysqli_query($conn, $sql); $user = mysqli_fetch_assoc($result); 

Важно учитывать, что при использовании второго варианта возможна SQL инъекция, поэтому необходимо очищать переменные перед использованием их в запросе.

Для более детального изучения вопроса «SQL инъекции» рекомендуем просмотреть урок Безопасность при работе с внешними данными из курса PHP PDO: Работа с базой данных

Как вставить переменную в Sql-запрос?

По-грамотному это делается через параметризованные запросы:

private void SomeThing(string id) < string sqlExpression = "SELECT Abc, Def FROM [ParserDB] WHERE Id >@id"; using (SqlConnection connection = new SqlConnection(ConString)) < using (SqlCommand command = new SqlCommand(sqlExpression, connection)) < connection.Open(); SqlParameter nameParam = new SqlParameter("@id", id); command.Parameters.Add(nameParam); SqlDataReader reader = command.ExecuteReader(); // . >> > 

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

Также вариант с плейсхолдерами даёт возможность SQL-серверу кешировать планы выполнения запросов, см. например тут.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *