2017-08-30 73 views
1

插入到MySQL我有做一個形式與此代碼:缺少字符串的一部分,而用PHP

<form action="action.php" method="POST"> 
HTML: 
<textarea name="html"></textarea> 
<input type="submit"> 
</form> 

,並用PHP將其插入:

<?php 
include "database.php"; 
$html = mysqli_real_escape_string($connect, $_POST['html']); 
$insert = mysqli_query($connect, "INSERT INTO data VALUES('$html')"); 
?> 

我已經使用了,併成功插入到mysql,但我的一些html字符串丟失 例如:如果我插入2000字符的html,它只需插入250個字符 注意:我正在使用jquery發佈表格

$.ajax({ 
     url  : url_login, 

     data : 'html='+html, 

     type : 'POST', 

     dataType: 'html', 

     success : function(mess){ 
      $('#content').html(mess); 
     }, 
    }); 

請幫

+3

您是否檢查數據庫字段以確保它允許超過250個字符? –

+0

爲什麼要存儲整個HTML數據塊? (是的,我知道有很多情況下這是完全有效的,但這可能是一個XY問題) – GrumpyCrouton

+0

是的,我已將它設置爲長文本 –

回答

1

您應該遵循格式的jQuery AJAX documentation提到:

變化,

data : 'html='+html, 

到,

data : { 
    html: html 
} 

格式正被使用被稱爲object,您可以在其中指定鍵/值(a就像你想的那樣)。

注意

  1. 看到,因爲你正在使用mysqli_*考慮USNG prepared statements防止 SQL注入。
  2. 驗證您的$_POSTissetempty確保字段設置爲防止錯誤。
+0

這不僅更容易閱讀,而且正確地轉義了'html'中的內容。 – tadman