[英]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')";
也可以看看:
問候
為了調試它
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.