170 похожих чатов

Кто то сталкивался с такой проблемой, не подставляет передаваемые параметры

в запрос в маркеры «?». В базу так и улетает со знаками вопросов.

Пример запроса к базе

rows, err := s.db.Query(
"SELECT * "+
"FROM `strategies_stats` "+
"WHERE `name` = \"?\" "+
"AND `signal_description` = \"?\" "+
"AND `signal_details` = \"?\" "+
"AND `market_code` = \"?\" "+
"AND `symbol_code` = \"?\" "+
"AND `data` >= \"? 00:00:00\" "+
"AND `data` <= \"? 00:00:00\" ",
name,
signalDescription,
signalDetails,
marketCode,
symbolCode,
startDay,
endDay,
)

При этом если я этот же запрос формирую в строку через fmt.Sprintf передаю его в метод без параметров, то все нормально отрабатывает.

35 ответов

18 просмотров

А s.db это что?

Stanislav- Автор вопроса
Stanislav
*sql.DB

Какая бд/драйвер? Postgres/ pq?

Stanislav- Автор вопроса
Elmanov Anton
Какая бд/драйвер? Postgres/ pq?

Это может влияет? Я думал формируется на уровне go

Stanislav
Это может влияет? Я думал формируется на уровне go

нет весь смысл что параметры идут отдельно от запроса на сервер

Stanislav- Автор вопроса
Александр Попов
нет весь смысл что параметры идут отдельно от запр...

Ага, я это уже понял. Я просто протестировал через Sprintf, может в запросе ошибка была. Значит что то глубже не работает.

Stanislav
Это может влияет? Я думал формируется на уровне go

Нет, драйвер формирует запрос и раскрывает плейсхолдеры. Драйвер должен быть импортирован, а еще sql.Open должен быть с параметром mysql - это все так?

Stanislav
да

Чуть выше я спрашивал, что за драйвер, осталось без ответа)

Stanislav
_ "github.com/go-sql-driver/mysql"

Годно, последняя моя идея это убрать кавычки вокруг ? в запросе. Они просто не нужны, но может это причина.

Stanislav- Автор вопроса
Elmanov Anton
Нет, драйвер формирует запрос и раскрывает плейсхо...

Кстати, на странице репоза, где этот метод нужно тоже подрубить это - _ "github.com/go-sql-driver/mysql»?

Stanislav- Автор вопроса
Elmanov Anton
Годно, последняя моя идея это убрать кавычки вокру...

кавычки это от отчаинья)) вначале было без них))

Stanislav- Автор вопроса
Александр Попов
попробывал с переред?

Пока нет, но если так не выйдет, обязательно попробую. Спасибо

Stanislav
Кстати, на странице репоза, где этот метод нужно т...

Пакет единожды импортируется все равно, он должен быть хоть гдето до выполнения запроса импортирован

Stanislav
*sql.DB

Возьмите jmoiron/sqlx - будет проще намного. А так - https://golang.org/doc/database/prepared-statements

Stanislav
кавычки это от отчаинья)) вначале было без них))

В примерах их нет. По идее при раскрытии плейсхолдера драйвер сам добавит, если это строка.

Виталий Фунтиков
Возьмите jmoiron/sqlx - будет проще намного. А так...

Как это поможет с раскрытием плейсхолдеров, если драйвер там тот же, просто небольшая обертка?

Stanislav- Автор вопроса
Elmanov Anton
Нет, драйвер формирует запрос и раскрывает плейсхо...

Нет, нормальный драйвер не обрабатывает плейсхолдеры

Stanislav- Автор вопроса
Виталий Фунтиков
Возьмите jmoiron/sqlx - будет проще намного. А так...

не, требование использовать по максимуму родное, без сторонних пакетов.

Alexey Palazhchenko
Нет, нормальный драйвер не обрабатывает плейсхолде...

а стандартный query работает с плейсхолдерами без пререпед? работал с mysql в далекой придалекой галактике давным давно :)

вот человек запрос кинул - хрена с два типо

В базу и должно улетать со знаками вопроса

Alexey Palazhchenko
Нет, нормальный драйвер не обрабатывает плейсхолде...

судя по доке этого конкретного драйвера, может быть и так и так. Зависит от настройки.

Elmanov Anton
судя по доке этого конкретного драйвера, может быт...

Да, но любой нормальный драйвер не пытается это делать

Stanislav- Автор вопроса
Alexey Palazhchenko
Да, но любой нормальный драйвер не пытается это де...

а какой кстати нормальный? Вот тот, что репортер проблемы привел, вроде бы достаточно популярный. https://github.com/go-sql-driver/mysql

Stanislav
Вот, Антон прям в точку попал

Всё так, но это делает не драйвер, а сам MySQL

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта