以字符串形式发送文本和在引号之间发送文本之间的区别

Difference between sending text as string and text between quotation marks

本文关键字:之间 文本 字符串 区别      更新时间:2023-10-16

我使用mysql++库连接到我的数据库。我创建了一个连接和查询:

Connection conn(false);
conn.connect("database", "localhost", "user", "pass");
Query query = conn.query();

然后我可以向数据库发送一个查询,如:

query << "select name from my_table1, my_table2 where age=20" 

但我想发送一个数字变量,而不是20。我试着用这种方式:

std::stringstream ss; //create a stringstream
ss << my_number //add number to the stream
std::string number = ss.str();
query << "select name from my_table1, my_table2 where age="+number; 

不幸的是,它不起作用。我的第二个问题是类似的。我创建了一个QPixmap对象(这里QPixmap无论如何都无关紧要),我必须给构造函数一个到我的图像的路径:

std:string name;
(...)
std::string path = "/home/root/img/"+name+".png"; //name is a variable string
QPixmap *tmp = new QPixmap(QString::fromUtf8(path.c_str())); //conversion from string to QString
query << "select name from my_table1, my_table2 where age="+number; 

应该是:

query << "select name from my_table1, my_table2 where age=" << number; 

因为CCD_ 1不是有效的C++流级联运算符。

QPixmap有什么问题?也许这应该是一个单独的问题?

对于您的第二个问题,我建议将其更改为:

std:string name;
(...)
std::string path = "/home/root/img/"+name+".png"; //name is a variable string

对此:

const QString name;
...
const QString path = QString("/home/root/img/%1.png").arg(name);
....
QPixmap tmp(path);