Seite 1 von 1

Input Validation für QtSql?

Verfasst: 21. September 2010 21:52
von phlox81
Irgendwie hat mir das schon immer gedämmert, aber bei QtSql finde ich gerade wirklich nichts um Userinput auf die DB loslassen zu können.
Ich kenne das z.B. von MySQL aus, da gibts mysql_escape_string.

Was ich bisher gefunden habe, waren entsprechende Validatoren für eingabefelder, aber wie prüfe ich den restlichen Input?
Erfahrungen?

Verfasst: 21. September 2010 22:25
von upsala
Das ganze ist unter QSqlQuery zu finden: prepare, bindValue und exec. Der Rest steht in der Doku.

Verfasst: 21. September 2010 23:12
von phlox81
upsala hat geschrieben:Das ganze ist unter QSqlQuery zu finden: prepare, bindValue und exec. Der Rest steht in der Doku.
Nee, ich habe nach QSqlDriver::formatValue gesucht. ;)

So sieht das dann im Code aus:

Code: Alles auswählen

QSqlField sf(QString("nodename"),QVariant::String);
        sf.setValue(str);
        QString sql = "INSERT INTO nodes(nodename) VALUES("+db.driver()->formatValue(sf,true)+");";
        QSqlQuery query(sql,db);

Verfasst: 22. September 2010 09:06
von upsala
Schau dir doch mal die Methoden an, die ich geschrieben hatte. Die sind einfacher zu handhaben.