"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como lidar corretamente com apóstrofos em consultas de inserção do MySQL para evitar erros de sintaxe?

Como lidar corretamente com apóstrofos em consultas de inserção do MySQL para evitar erros de sintaxe?

Publicado em 2024-11-07
Navegar:515

How to Correctly Handle Apostrophes in MySQL Insert Queries to Prevent Syntax Errors?

Tratamento de apóstrofos em consultas de inserção do MySQL

No MySQL, consultas de inserção que contêm apóstrofos (aspas simples) podem encontrar erros de sintaxe. Ao encontrar o erro "Você tem um erro na sintaxe SQL..." especificamente em relação aos apóstrofos, existem soluções para garantir uma inserção de dados bem-sucedida.

A principal solução está em escapar dos apóstrofos usando uma barra invertida (\ ) personagem. Por exemplo, a string "Kellog's" precisaria ser escrita como "Kellogg\'s". Ao escapar do apóstrofo com uma barra invertida, o MySQL interpreta o seguinte caractere como um literal em vez de um indicador de sintaxe.

Além disso, é aconselhável utilizar a função mysql_real_escape_string() do MySQL ao preparar dados para inserção. Esta função escapa automaticamente de caracteres especiais, incluindo apóstrofos, tornando-a uma proteção abrangente contra possíveis injeções de SQL. Considere o seguinte exemplo:

function insert($database, $table, $data_array) {
    $mysql_connect = connect_to_database();
    mysql_select_db($database, $mysql_connect);

    foreach ($data_array as $key => $value) {
        $tmp_col[] = $key;
        $tmp_dat[] = "'" . mysql_real_escape_string($value) . "'"; // Escaping
    }

    $columns = join(',', $tmp_col);
    $data = join(',', $tmp_dat);

    $sql = 'INSERT INTO ' . $table . '(' . $columns . ')VALUES(' . $data . ')';
    $result = mysql_query($sql, $mysql_connect);

    if (!$result) {
        echo 'MySQL Update Error: ' . mysql_error($mysql_connect);
        $result = '';
    } else {
        return $result;
    }
}

Ao usar este método, você pode inserir dados contendo apóstrofos em tabelas MySQL sem erros de sintaxe ou vulnerabilidades de segurança.

Declaração de lançamento Este artigo foi reimpresso em: 1729688123 Se houver alguma violação, entre em contato com [email protected] para excluí-lo
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3