2016-01-13 141 views
-1

我尝试添加该文本到MySQL数据库和PHP和$ _ POST方法:将文本添加到数据库

HTML:

<form name="addBook" action="?action=save" method="post" enctype="multipart/form-data"> 
     <table> 
     <tr> 
      <td>Boek naam</td> 
      <td><input type='text' name='book_name' required></td> 
     </tr> 
     <tr> 
      <td>Genre</td> 
      <td><input type='text' name='book_genre' required></td> 
     </tr> 
     <tr> 
      <td>Cover</td> 
      <td><input type='file' name='cover' id='cover'></td> 
     </tr> 
     <tr> 
      <td>Text</td> 
      <td><textarea cols='50' rows='20' name='book_text'>Schrijf hier</textarea></td> 
     </tr> 
     <tr> 
      <td colspan="2"><input type="reset" name="reset" value="Remove text"> 
      <input type="submit" name="submit" value="Save"></td> 
     </tr> 
     </table> 
     </form> 

PHP:

$query = $db->prepare(" 
       INSERT INTO `books` (`book_name`, `book_text`, `book_genre`, `book_cover`) VALUES (:name, :text, :genre, :fulldir)"); 
    $query->bindParam(':name', $book_name); 
    $query->bindParam(':text', $book_text); 
    $query->bindParam(':genre', $book_genre); 
    $query->bindParam(':fulldir', $fulldir); 
    $query->execute(); 

这是文本:

“Lorem ipsum dolor sit amet,consectetur adipiscing ELIT。 Curabitur nec metus eget enim egestas rhoncus。 Cras id suscipit augue。 Mauris dignissim semper ligula,non rhoncus mi sollicitudin sed。在hac cubasse platea中最明显。 Maecenas non augue eu augue ultrices可以成为一个巨大的magna。 Sed luctus nulla libero。在porta felis享用丰盛的美食。 Curabitur pulvinar,tortor ut gravida facilisis,eros lectus condimentum metus,cursus dapibus sapien lacus vel nisl。 Maecenas rut​​rum nunc eget convallis imperdiet。 Fusce felis ex,车辆零配件,eleifend consequat dolor。 Vestibulum fringilla elementum赌注,fringilla luctus elit faucibus eget。

Etiam ac enim non nisl elementum dapibus vel quis augue。 sed vestibulum,lacus vitae ultricies dictum,lacus augue sodales justo,sit amet efficitur purus neque vitae magna。 Duis malesuada sagittis tortor,在商品nisi hendrerit ut。 Quisque quis tincidunt odio。 Ut cursus enim nec venenatis laoreet。 Vestibulum erat diam,egestas vitae scelerisque sed,pulvinar a turpis。 Curabitur奥迪奥胡斯托,ornare eget tortor欧盟,commodo condimentum EST。南格言,augue tempor格言porttitor,MI turpis volutpat爱神,一个tristique metus存有NEC enim。”

但是当我添加文字,它消除了两段之间的空格:

“Lorem ipsum dolor sit amet,consectetur adipiscing elit。 Curabitur nec metus eget enim egestas rhoncus。 Cras id suscipit augue。 Mauris dignissim semper ligula,non rhoncus mi sollicitudin sed。在hac cubasse platea中最明显。 Maecenas non augue eu augue ultrices可以成为一个巨大的magna。 Sed luctus nulla libero。在porta felis享用丰盛的美食。 Curabitur pulvinar,tortor ut gravida facilisis,eros lectus condimentum metus,cursus dapibus sapien lacus vel nisl。 Maecenas rut​​rum nunc eget convallis imperdiet。 Fusce felis ex,车辆零配件,eleifend consequat dolor。 Vestibulum fringilla elementum赌注,fringilla luctus elit faucibus eget。 Etiam ac enim non nisl elementum dapibus vel quis augue。 sed vestibulum,lacus vitae ultricies dictum,lacus augue sodales justo,sit amet efficitur purus neque vitae magna。 Duis malesuada sagittis tortor,在商品nisi hendrerit ut。 Quisque quis tincidunt odio。 Ut cursus enim nec venenatis laoreet。 Vestibulum erat diam,egestas vitae scelerisque sed,pulvinar a turpis。 Curabitur奥迪奥胡斯托,ornare eget tortor欧盟,commodo condimentum EST。南格言,augue tempor格言porttitor,MI turpis volutpat爱神,一个tristique metus存有NEC enim“。

我如何可以将文本添加到数据库中,同时保持段落之间的空白?

+1

你怎么现在写这到数据库?你如何确认空白被删除?数据库将存储给定的任何字符数据流,但不会去除特定字符。 – David

+0

你想用PHP做这个吗?它来自$ _POST吗?它来自phpmyadmin吗?更多信息请...没人能理解你的问题。 – GeorgeGeorgitsis

+0

在插入到db之前放置一条调试语句。检查它是否有新行(\ n)。如果它在那里,那么它会在db中写入相同的内容。如果它不在那里,它不会写。这将加入所有行 –

回答

0

换行字符\n不会在浏览器中显示,你需要将它们转换到<br> s。这可以是d一个在数据插入或输出上使用nl2br。例如:

$query = $db->prepare(" 
       INSERT INTO `books` (`book_name`, `book_text`, `book_genre`, `book_cover`) VALUES (:name, :text, :genre, :fulldir)"); 
    $query->bindParam(':name', $book_name); 
    $query->bindParam(':text', nl2br($book_text)); 
    $query->bindParam(':genre', $book_genre); 
    $query->bindParam(':fulldir', $fulldir); 
    $query->execute(); 

演示:http://sandbox.onlinephpfunctions.com/code/ac2f35000833f6c91e2d96bf10a09b96ea182ae8

或输出方法...

+0

它完美的作品!感谢chris85! –

+3

你不应该在'bindParam()'中使用'nl2br()'。一般不建议在插入前修改数据。相反,您应该使用第二种方法,将其以原始未修改的格式插入,并仅在输出中使用'nl2br()'。在存储之前更改它可能会在以后尝试搜索示例时导致问题。 –

-1

在这里,在inster此文。更改表名和字段名。

INSERT INTO `mytable` (`fieldname`) 
VALUES 
    ('Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur nec metus eget enim egestas rhoncus. Cras id suscipit augue. Mauris dignissim semper ligula, non rhoncus mi sollicitudin sed. In hac habitasse platea dictumst. Maecenas non augue eu augue ultrices commodo a accumsan magna. Sed luctus nulla libero. Ut vitae felis eu nunc porttitor fermentum at porta felis. Curabitur pulvinar, tortor ut gravida facilisis, eros lectus condimentum metus, cursus dapibus sapien lacus vel nisl. Maecenas rutrum nunc eget convallis imperdiet. Fusce felis ex, vehicula placerat erat ut, eleifend consequat dolor. Vestibulum fringilla elementum ante, fringilla luctus elit faucibus eget.\n\nEtiam ac enim non nisl elementum dapibus vel quis augue. Sed vestibulum, lacus vitae ultricies dictum, lacus augue sodales justo, sit amet efficitur purus neque vitae magna. Duis malesuada sagittis tortor, in commodo nisi hendrerit ut. Quisque quis tincidunt odio. Ut cursus enim nec venenatis laoreet. Vestibulum erat diam, egestas vitae scelerisque sed, pulvinar a turpis. Curabitur odio justo, ornare eget tortor eu, commodo condimentum est. Nam dictum, augue tempor dictum porttitor, mi turpis volutpat eros, a tristique metus ipsum nec enim.\"\n\nBut when I add the text, it removes the whitespace between the two paragraphs:\n\n\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur nec metus eget enim egestas rhoncus. Cras id suscipit augue. Mauris dignissim semper ligula, non rhoncus mi sollicitudin sed. In hac habitasse platea dictumst. Maecenas non augue eu augue ultrices commodo a accumsan magna. Sed luctus nulla libero. Ut vitae felis eu nunc porttitor fermentum at porta felis. Curabitur pulvinar, tortor ut gravida facilisis, eros lectus condimentum metus, cursus dapibus sapien lacus vel nisl. Maecenas rutrum nunc eget convallis imperdiet. Fusce felis ex, vehicula placerat erat ut, eleifend consequat dolor. Vestibulum fringilla elementum ante, fringilla luctus elit faucibus eget. Etiam ac enim non nisl elementum dapibus vel quis augue. Sed vestibulum, lacus vitae ultricies dictum, lacus augue sodales justo, sit amet efficitur purus neque vitae magna. Duis malesuada sagittis tortor, in commodo nisi hendrerit ut. Quisque quis tincidunt odio. Ut cursus enim nec venenatis laoreet. Vestibulum erat diam, egestas vitae scelerisque sed, pulvinar a turpis. Curabitur odio justo, ornare eget tortor eu, commodo condimentum est. Nam dictum, augue tempor dictum porttitor, mi turpis volutpat eros, a tristique metus ipsum nec enim'); 
+0

这是如何解决问题的?数据正在插入,它缺少换行符(或假定)。 – chris85