Question

J'ai fait une lecture sur mysqli_real_escape_string (), et, après avoir été correctement échappé à mon contenu, j'ai du mal à afficher correctement lorsque je le retire à nouveau.

Voici le code que j'ai:

function update_section_content() {
    $name = mysqli_real_escape_string($this->conn, $_POST['name']);
    $text = mysqli_real_escape_string($this->conn, $_POST['content']);

    // First, we do an update
    $update_query = "UPDATE sections SET content = ? WHERE name = ?";
    if($update_stmt = $this->conn->prepare($update_query)) {
        $update_stmt->bind_param('ss', $text, $name);
        $update_stmt->execute();
        // If the update was successful, read in what we just updated
        if($update_stmt->affected_rows == 1) {
            $read_query = "SELECT content FROM sections WHERE name = ?";
            if($read_stmt = $this->conn->prepare($read_query)) {
                $read_stmt->bind_param('s', $name);
                    $read_stmt->execute();
                $read_stmt->bind_result($content);
                if($read_stmt->fetch()) {
                    echo nl2br($content);
                }
            }
        }
        $read_stmt->close();
        $update_stmt->close();
}

Mon espoir pour le code suivant était qu'il mettrait à jour un enregistrement et échapperait à tous les mauvais caractères, puis, après succès, lire la requête mise à jour tout en conservant son intégrité visuelle précédente. (C'est-à-dire que j'aimerais pour la TextArea que ce contenu se fait résonner pour afficher Newlines et non BR.)

Malheureusement, pour l'instant, je suis toujours affiché des personnages de Newline après avoir échappé. Qu'est-ce que je rate?

Merci beaucoup pour votre temps et tout conseil fourni est grandement apprécié.

Malheureusement, ce n'est pas le cas. J'ai encore des personnages de Newline

Était-ce utile?

La solution

Puisque vous utilisez des déclarations préparées, vous ne devriez pas également échapper à vos cordes.

L'échappement des cordes est pour que vous incorporez les valeurs dans la chaîne de requête SQL elle-même, mais en utilisant des instructions préparées, vous évitez à juste titre de le faire.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top