簡體   English   中英

如何使用 mysqli 和 javascript 更新我的數據庫

[英]How do I update my database with mysqli and javascript

我有一個網站,它基本上是一個音頻播放器和一個屏幕上的集成歌詞查看器,用戶應該能夠與他們聽到的音樂同步。 我只有一個問題,那就是; 我到底如何從 javascript 函數調用 mysqli 更新語句? 當用戶單擊保存按鈕時,內容被扔到一個 div 中,我希望在運行 JavaScript 后 PHP 獲取該內容並將其放入數據庫中。

最好的方法是什么?

為什么這不起作用?

        function saveinPHP() {
        //alert("Came here");
        //var superstr = $( "#savelyric" ).text();
        var superstr = 'lol';
        $.ajax({
        type: "POST",
        url: "includes/sendlyrics.php",
        data: superstr,
        cache: false,
        contentType: false,
        processData: false,
        success:  function(data){
            alert("---"+data);
            alert("Settings has been updated successfully." + data + "~~~" + superstr);
            //window.location.reload(true);
        }
    });
    }

然后是PHP:

    <?php 
include ('db_connect.php');

$data = $_POST['data'];

    $query = "UPDATE song SET time=". $data ." WHERE id='1'";
    mysqli_query($query);
?>

將 PHP 編寫在一個完全獨立的專用文件中,該文件采用 POST 變量、構造 SQL 查詢並將它們插入到數據庫中。 然后讓您的 JavaScript 函數使用 POST 請求將數據發送到此 PHP 文件。

瀏覽器中的 JavaScript 無法與數據庫交互。 它只能向可以捕獲這些請求並將附加數據放入數據庫的服務器發送 GET/POST 請求。

首先,當您指定一個字符串作為data ,jQuery 將按原樣發送它。

您使用的字符串"lol"沒有以 PHP 能夠理解的 POST 數據的任何一種標准格式進行格式化。

因此, $_POST中沒有數據。

改為向 jQuery 傳遞一個對象:

data: { data: superstr }

其次false不是上述任何一種標准格式的內容類型。 默認情況下,jQuery 將使用適當的內容類型。 刪除此覆蓋:

contentType: false,

第三processData: false,將對象轉換為表單編碼數據。 去掉它。

第四,SQL 中的字符串必須被引用。 你沒有引用data

 $query = "UPDATE song SET time='$data' WHERE id='1'";

請注意,這仍然容易受到 SQL 注入的影響,您應該修復它

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM