2014-11-08 42 views
0

我有一個只有2個用戶可編輯字段的表單。一個是文本字段中輸入一個數值ID,另一個使用TinyMCE的輸入冗長的數量的文本上提交保存到MySQL:未插入MySQL的長文本條目

if (!empty ($_POST)) { 
    $location_id = $_POST['restaurant_id']; 
    $content = $_POST['content']; 
    $query = "INSERT INTO restaurant_reviews 
       (location_id, text1, review_date) 
       VALUES 
       ('$location_id', '$content', NOW())"; 
    $execute = mysqli_query($dbc, $query); 
    print_r($_POST); 
} 

的問題是,當即使相當小的文字量在提交表單(少量我的意思是最多2/3的正常段落)記錄不是在MySQL中生成的。每次使用tinyMCE字段中的幾個文字提交表單時,表單都會成功提交。

無論表單中提交的文本數量多少,當它由print_r函數回顯出來時,它都會出現在post數組中,它只是不如數據庫。 text1列是類型longtext,所以確定這不是問題。有任何想法嗎?

+1

什麼你所期望的,如果有在發表的內容的任何引號字符發生干擾字符? – 2014-11-08 20:13:52

+1

你的代碼對sql注入是開放的!請閱讀準備好的陳述的好處以及它們如何幫助解決此問題。 – arkascha 2014-11-08 20:14:22

+2

你的代碼不會逃避輸入,所以任何單引號將打破查詢 – chiliNUT 2014-11-08 20:14:38

回答

0

我建議你使用

$connection = mysqli_connect("database_host", "username", "password", "database_name"); 

$id   = (int)mysqli_real_escape_string($connection, $_POST['restaurant_id']); 
$content = mysqli_real_escape_string($connection, $_POST['content']); 

逃避可能與SQL語句

+0

更好的是推薦使用綁定變量 – 2014-11-08 20:36:30