2017-03-09 3 views
1

Je veux insérer une chaîne similaire dans DB, mais après avoir inséré les caractères "\ n" disparaître et dans DB je le vois comme nouvelle ligne.Après la chaîne d'insertion dans MySQL, le caractère ' n' (nouvelle ligne) disparaît

La chaîne que j'envoie:

[{"Index":0,"Title":"headline","Content":"first line\nsecond line","Class":"colour1"}] 

Pour insérer DB, j'utiliser ce code PHP et la chaîne I via le formulaire HTML avec la méthode POST.

if ($action == "save") { 
    $notes = $_POST['notes']; 
    $sql = "INSERT INTO notes (notes) VALUES ('$notes')"; 
    if (mysqli_query($conn, $sql)) { 
    $saved = "Saved..."; 
    } else { 
    $saved = "Error: " . mysqli_error($conn); 
    } 
} 

Lorsque j'imprime variable « $ _POST [ « notes »] » ou « notes de $ » avant de l'envoyer via le formulaire, la chaîne est OK, après avoir envoyé le formulaire et avant d'insérer dans DB, la chaîne est OK aussi.

+1

Essayez: 'str_replace ('\ n', '', $ _POST [ 'notes']);' http://stackoverflow.com/questions/8627902/new-line-in-text-area –

Répondre

1

lors de l'extraction des résultats

+0

La fonction nl2br() insère des sauts de ligne HTML avant tous les retours à la ligne dans une chaîne, mais je veux récupérer la même chaîne que j'insère, sans nouvelles lignes, avec le caractère "\ n". Y at-il une fonction similaire qui remplace les nouvelles lignes par caractère \ n? – omfo

0

de base de données, l'utilisation nl2br() Le problème se pose en raison de l'interprétation de '\ n' comme '\\ n' dans MySql. Pour éviter cette conversion, essayez cette approche: Modifier votre chaîne de requête avant de faire une insertion dans la base de données comme suit:

$notes = $_POST['notes']; 
    //This line will replace '\n' with HTML Coded Character Set, but will be interpreted in HTML as \n itself. 
    $notes = str_replace('\n', '\n', $notes); 
    $sql = "INSERT INTO notes (notes) VALUES ('$notes')"; 
0

« \ n » est une déclaration de la ligne suivante, il est exact que MySql prendre la ligne comme suivante . Je dois utiliser nl2br ($ value) pour l'afficher comme ligne suivante dans la page web html.