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
или value
X'
формат. Однако, возвращаемое значение не включает 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
, не включая завершающийся нулевой символ.
Ни один.