Skip to content

File tree

1 file changed

+10
-1
lines changed

1 file changed

+10
-1
lines changed
 

‎src/providers/postgres/qgspostgresprovider.cpp

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1741,6 +1741,10 @@ bool QgsPostgresProvider::addFeature(QgsFeature* f, int primaryKeyHighWater)
17411741
{
17421742
insert+="'";
17431743
}
1744+
1745+
// important: escape quotes in field value
1746+
fieldvalue.replace("'", "''");
1747+
17441748
insert+=fieldvalue;
17451749
if(charactertype)
17461750
{
@@ -1995,7 +1999,12 @@ bool QgsPostgresProvider::changeAttributeValues(std::map<int,std::map<QString,QS
19951999
{
19962000
for(std::map<QString,QString>::const_iterator siter=(*iter).second.begin();siter!=(*iter).second.end();++siter)
19972001
{
1998-
QString sql="UPDATE "+mSchemaTableName+" SET "+(*siter).first+"='"+(*siter).second+"' WHERE \"" +primaryKey+"\"="+QString::number((*iter).first);
2002+
QString val = (*siter).second;
2003+
2004+
// escape quotes
2005+
val.replace("'", "''");
2006+
2007+
QString sql="UPDATE "+mSchemaTableName+" SET "+(*siter).first+"='"+val+"' WHERE \"" +primaryKey+"\"="+QString::number((*iter).first);
19992008
QgsDebugMsg(sql);
20002009

20012010
// s end sql statement and do error handling

0 commit comments

Comments
 (0)
Please sign in to comment.