Как говорится в заявлении, я пытаюсь запросить базу данных MySQL
с использованием локальной переменной для предложения where. Я знаю, что в java вы можете использовать оператор +
, чтобы просто вставлять локальные переменные в строку запроса, которая, очевидно, не совпадает с C++
. поэтому я подумал, что идентификатор использовать строковый поток:Как использовать локальную переменную как часть запроса MySQL (Qt C++)
void test::something(double car_id)
{
std::stringstream ss;
ss << "SELECT * FROM cars WHERE carID = '";
ss << car_id << "'";
QString query_string = QString::fromStdString(ss.str());
QSqlQuery query(query_string);
// execute the query
query.exec();
std::cout << query.value("carID").toString().toStdString() << std::endl;
}
, но это также не работает, любая помощь будет большой, потому что я не могу найти ответ
приветствия
Как это не работает? В чем проблема? – deepmax
Никогда не создавайте SQL-запросы с конкатенацией строк. Инъекция очень вероятна. Используйте [подготовленные заявления] (https://en.wikipedia.org/wiki/Prepared_statement)! – leemes
говорит, что 'QSQLQuery :: значение не помещается в действительную запись' – AngryDuck