2016-01-13 135 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