[英]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.