2017-09-01 52 views
1

我想插入選中的文本在我的頁面在表中點擊我的網頁上的按鈕,但我的問題是它插入。選擇文本是正確的我測試了它。我收到 反應是我選擇的文本在ajax數據庫更新表

這是我的索引頁和我經過我的文本翻譯成可變文本

<script src="jquery-3.2.1.min.js"></script> 
    <script> 
     $(document).ready(function() { 
      var text = $("span:not([dir=rtl])").text(); 
      $("#btn").click(function() { 
       $.ajax({ 
        type:'post', 
        url:'process.php', 
        data:{'text':text}, 
        success:(function (response) { 
         alert(response); 
        }) 
       }) 
      }) 
     }) 
    </script> 

這是我process.php連接到數據庫,然後執行查詢,但運行else語句

$servername = "localhost"; 
$username = "root"; 
$password = ""; 
$dbname = "sahifeDB"; 
$conn = new mysqli($servername, $username, $password, $dbname); 
$sql = 'update sahife_tbl set english ='. $_POST['text'].' where id=1 '; 
$result = $conn->query($conn,$sql); 
if ($conn->query($sql) === TRUE) { 
    echo "New record created successfully"; 
} else { 
    echo "Error: " . $sql . "<br>" . $conn->error; 
} 

$conn->close(); 
?> 
+1

是否控制檯顯示任何 – clearshot66

+0

顯示你有什麼作爲響應... –

+1

[打開你的PHP錯誤報告。](https://stackoverflow.com/a/5438125/1022914) – Mikey

回答

0

你需要把"在更新語句的數據類型是文本字段

改變你的查詢:

$sql = 'update sahife_tbl set english ="'. $_POST['text'].'" where id=1 '; 

還可以使用預處理語句從SQL注入

+0

也不起作用 – sepehr

0

你需要把周圍的查詢與您的字符串值引號,以防止否則你的數據庫將嘗試解析文本部分的語法和摔倒。

$sql = "update sahife_tbl set english ='". $_POST['text']."' where id=1 "; 

但再次在我對你的問題發表評論時提及,這是超級不安全的,你要使用參數化代替 - https://stackoverflow.com/a/60496/635522