mysql_real_escape_string()


unsigned long mysql_real_escape_string(MYSQL *mysql, char *to, const char *from, unsigned long length)

Descrição

A função é usada para criar um string SQL válida que você pode usar em uma instrução SQL. Leia "Strings".

A string em from é codificada para uma string SQL com escape, levando em conta o conjunto de caracteres atual da conexãon. O resultado é colocada em to e uma byte nulo de terminção é adcionado. Caracteres codificados são NUL (ASCII 0), '\n', '\r', '\', ''', ''' e Control-Z (see "Literais: Como Gravar Strings e Numerais"). (O MariaDB precisa que apenas a barra invertida e as aspas utilizadas para citar a consulta sejam escapadas. Esta função coloca os outros caracteres entre aspas para torná-lo mais fácil de ser lido em arquivos log.)

A string apontada por from deve ter o tamanho de length bytes. Você deve alocar o buffer to para o tamanho de pelo menos length*2+1 bytes. (No pior caso, cada caracter pode precisar de ser codificado como se utilizasse dois bytes, e você preciria de espaço para o byte null de terminação.) Quando mysql_real_escape_string() retornar, o conteúdo de to será uma string terminada em null. O valor é o tamanho da string codificada. não incluindo o caracter nulo usado para terminar a string.

Exemplo

char query[1000],*end;
end = strmov(query,'INSERT INTO test_table values(');
*end++ = '\'';
end += mysql_real_escape_string(&mysql, end,'What's this',11);
*end++ = '\'';
*end++ = ',';
*end++ = '\'';
end += mysql_real_escape_string(&mysql, end,'binary data: \0\r\n',16);
*end++ = '\'';
*end++ = ')';
if (mysql_real_query(&mysql,query,(unsigned int) (end - query)))
{
 fprintf(stderr, 'Failed to insert row, Error: %s\n',
 mysql_error(&mysql));
}

A função strmov() usada no exemplo está incluída na biblioteca mysqlclient e funciona como strcpy() mas retorna um ponteiro para null de terminação do primeiro parâmetro.

Valor Retornado

O tamanho do valor colocado em to, não incluindo o caracter null de terminação.

Erros

Nenhum.

Retornar