|
Spec-Zone .ru
спецификации, руководства, описания, API
|
unsigned long mysql_hex_string(char *to, const char *from, unsigned long length)
Эта функция используется, чтобы создать юридическую строку SQL, которую можно использовать в SQL-операторе. См. Раздел 9.1.1, "Строковые литералы".
Строка в from кодируется к шестнадцатеричному формату, с каждым символом,
закодированным как две шестнадцатеричных цифры. Результат помещается в to и
завершающийся нулевой байт добавляется.
Строка, которой указывают from должен быть length
байты долго. Следует выделить to буфер, чтобы быть, по крайней мере, length*2+1 байты долго. Когда mysql_hex_string() возвраты, содержание to
завершенная нулем строка. Возвращаемое значение является длиной закодированной строки, не включая завершающийся
нулевой символ.
Возвращаемое значение может быть помещено в SQL-оператор, используя также 0x или valueX' формат. Однако, возвращаемое значение не включает value'0x или X'...'. Вызывающая сторона должна предоставить,
какой бы ни из тех требуется.
char query[1000],*end;end = strmov(query,"INSERT INTO test_table values(");end = strmov(end,"0x");end += mysql_hex_string(end,"What is this",12);end = strmov(end,",0x");end += mysql_hex_string(end,"binary data: \0\r\n",16);*end++ = ')';if (mysql_real_query(&mysql,query,(unsigned int) (end - query))){ fprintf(stderr, "Failed to insert row, Error: %s\n", mysql_error(&mysql));}
strmov() функция, используемая в примере, включается в libmysqlclient
библиотека и работы как strcpy() но возвращает указатель на завершающийся нуль
первого параметра.
Длина значения, помещенного в to, не включая завершающийся нулевой символ.
Ни один.