MCPcopy Create free account
hub / github.com/Kitware/VTK / EscapeString

Method EscapeString

IO/MySQL/vtkMySQLQuery.cxx:880–909  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

878}
879
880vtkStdString vtkMySQLQuery::EscapeString(vtkStdString src, bool addSurroundingQuotes)
881{
882 std::string dst;
883 vtkMySQLDatabase* dbContainer = static_cast<vtkMySQLDatabase*>(this->Database);
884 assert(dbContainer != nullptr);
885
886 MYSQL* db;
887 if ((!dbContainer->IsOpen()) || !(db = dbContainer->Private->Connection))
888 { // fall back to superclass implementation
889 dst = this->Superclass::EscapeString(src, addSurroundingQuotes);
890 return dst;
891 }
892
893 unsigned long ssz = src.size();
894 char* dstarr = new char[2 * ssz + (addSurroundingQuotes ? 3 : 1)];
895 char* end = dstarr;
896 if (addSurroundingQuotes)
897 {
898 *(end++) = '\'';
899 }
900 end += mysql_real_escape_string(db, end, src.c_str(), ssz);
901 if (addSurroundingQuotes)
902 {
903 *(end++) = '\'';
904 *(end++) = '\0';
905 }
906 dst = dstarr;
907 delete[] dstarr;
908 return dst;
909}
910
911//------------------------------------------------------------------------------
912

Callers 1

TestMySQLDatabaseFunction · 0.45

Calls 4

assertFunction · 0.50
IsOpenMethod · 0.45
sizeMethod · 0.45
c_strMethod · 0.45

Tested by 1

TestMySQLDatabaseFunction · 0.36