Да, это возможно - можно использовать, ВСТАВЛЯЮТ... НА ДУБЛИРУЮЩЕМСЯ КЛЮЧЕВОМ ОБНОВЛЕНИИ.
Используя Ваш пример:
INSERT INTO table (id,Col1,Col2) VALUES (1,1,1),(2,2,3),(3,9,3),(4,10,12)
ON DUPLICATE KEY UPDATE Col1=VALUES(Col1),Col2=VALUES(Col2);
Использование буферизации вывода - лучший вариант.
ob_start();
include 'test.php';
$output = ob_get_clean();
PS: Помните, что при необходимости вы также можете вложить буферы вывода в соответствии с вашими сердцами.
s также метод для const ushort *
, содержащий строку в кодировке UTF16:
QString QString :: fromUtf16 (const ushort * unicode, int size = -1)
const ushort* str = read_raw("hello.txt"); // assuming hello.txt is UTF16 encoded, and read_raw() reads bytes from file into memory and returns pointer to the first byte as const ushort*
QString qstr = QString::fromUtf16(str);
Альтернативный способ:
std::string s = "This is an STL string";
QString qs = QString::fromAscii(s.data(), s.size());
Преимущество этого метода состоит в том, что он не использует .c_str ()
, что может привести к копированию std :: string
самого себя в случае, если некуда добавить '\ 0'
в конце.
std::string s = "Sambuca";
QString q = s.c_str();
Предупреждение: Это не сработает, если std :: string
содержит \ 0
s.
Вы имеете в виду строку C, например строку char *
, или строку C ++ std :: string
object?
В любом случае вы используете тот же конструктор, как описано в справочнике QT:
Для обычной строки C просто используйте главный конструктор:
char name[] = "Stack Overflow";
QString qname(name);
Для std :: string
, вы получаете char *
в буфер и передаете его конструктору QString
:
std::string name2("Stack Overflow");
QString qname2(name2.c_str());
Если скомпилировано с совместимостью с STL, QString
имеет статический метод для преобразования std :: string
в QString
:
std::string str = "abc";
QString qstr = QString::fromStdString(str);