簡體   English   中英

mySQL插入語句不起作用?

[英]mySQL insert statement NOT working?

我一直在尋找答案。 我一直在與其他人交叉引用我的代碼。 我似乎沒有看到任何明顯的錯誤......

我的數據庫沒有更新,我的數據庫什么也沒做。 哦,頁面也沒有做任何事......這令人沮喪,因為我只是使用記事本++並且無法查明錯誤。 我也在使用XAmpp,並且所有的值都與我所做的相匹配。

    The .post statement (Using jQuery 1.7.1):
    //Make sure DOM is loaded before running jQuery based code: [STATIC CODE]
$(document).ready(function(){

    $('#uploadbtn').click(function() {

        //Parse name and song.
        var name = $('#songname').val();
        var song =  $('#songupload').val();

        $.ajax(
        {
            type: 'POST',
            data: 'db/upload.php?name=' + name + 'song=' + song,
            success: function(res) {
                $('#nav-playlist').html(res);
            }
        }   
        )

    });

});



Now here is my php file:

<?php

/*Connection to database.
   First with mysql_connect (to log in). Then selecting the master database.
*/
echo "Upload.php accessed...";
$connection = mysql_connect("localhost", "root", "root") or die ( mysql_error() );
$database = mysql_select_db("betadb") or die( mysql_error() );

//Properties (to be inserted into database).
$name = mysql_real_escape_string($_POST["name"]); 
$song = mysql_real_escape_string($_POST["song"]);

//Insertion formula for mySQL
$query = "INSERT INTO songs SET name= '$name' song='$song' ";

if (mysql_query($query)){
echo "Success";
} 
else {

}

?>

附加說明:歌曲表由id,name,song(按此順序)組成。 Song是BLOB數據類型,因為它用於存儲.mp3s

問題出在以下幾行

data    : 'db/upload.php?name='+name+'song='+song,

data應該是包含值的數組,例如

var data
data["name"] = name
data["song"] = song

$ .ajax調用也缺少執行請求所需的url參數

url: 'db/upload.php'

嘗試指定您的列。

$query = "INSERT INTO songs (youcoulmn1,youcolumn2) VALUES ('$name', '$song')";

也可以看看:

PHP MySQL插入

問候

為了調試它
1)做print_r($_POST); 檢查你有什么要插入
2)然后而不是
$result = mysql_query($query, $connection) or die ("Unsucessful");

$result = mysql_query($query, $connection) or die (mysql_error());
獲取確切的錯誤並搜索錯誤修復程序

$name = mysql_real_escape_string($_POST["name"]); //Assign to name & song variables.
    $song = mysql_real_escape_string($_POST["song"]);

//Insertion formula for mySQL
$query = "INSERT INTO songs VALUES ('$name', '$song')";

$result = mysql_query($query, $connection) or die ("Unsucessful");

最好使用SET ,對某些條件更容易,而對於Jquery Command使用$.ajax ,你可以嘗試這個

對於javascript / JQuery

$(function(){
    $('#uploadbtn').click(function(){
        var name = $('#songname').val();
        var song =  $('#songupload').val();
        $.ajax({
            type    :'POST',
            data    : 'db/upload.php?name='+name+'song='+song,
            success :function(res){
                $('#nav-playlist').html(res);
            }
        });
    });
});

並在php中插入命令

$name = mysql_real_escape_string($_POST["name"]); 
$song = mysql_real_escape_string($_POST["song"]);

$query = "INSERT INTO songs SET name='$name' song='$song'";
if(mysql_query($query)){
    // some process if success
}else{
    // some proses if not
}

在插入數據庫之前使用mysql_real_escape_string過濾數據

變量周圍的單引號可能導致問題..檢查它..

據我記憶,這條線

$query = "INSERT INTO songs SET name= '$name' song='$song' ";

應該

$query = "INSERT INTO songs SET name= '$name', song='$song' ";

注意逗號!

並且:

data: 'db/upload.php?name=' + name + 'song=' + song,

至少應該是:

data: 'db/upload.php?name=' + name + '&song=' + song,

因為現在字段之間沒有分隔符。

暫無
暫無

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

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