这是我的表中的行。
使用这段代码,我可以在控制台中“in”。
QSqlQuery qry;
qry.prepare("SELECT * FROM user");
qry.exec();
if(qry.size() > 0)
qInfo() << "in";
else
qInfo() << "error";
但是有了这个代码,我得到了“错误”。
QSqlQuery qry;
qry.prepare("SELECT age FROM user");
qry.exec();
if(qry.size() > 0)
qInfo() << "in";
else
qInfo() << "error";
2条答案
按热度按时间nx7onnlm1#
试试看
问题出在表名上。由于
user
是一个保留字,一些工具(PgAdmin)会自动给名称"user"
加上双引号,当应用到表时,您必须使用双引号。不幸的是,user
在Postgres中是一个函数(相当于current_user
),因此第一个查询返回一行,没有错误。最好的解决方案是重命名表,并且不使用保留字作为Postgres标识符(表、列、视图、函数等的名称)。
lfapxunr2#