我有一个JS脚本:
function addTasteingNote(userID,beerID)
{
//get values
var note = $('#note1').val();
var ajaxSettings = {
type: "POST",
url: "a.php",
data: "u="+userID+"&b="+beerID+"&n="+note,
success: function(data){
} ,
error: function(xhr, status, error) { alert("error: " + error); }
};
$.ajax(ajaxSettings);
return false;
}
和要添加到db的php脚本是:
<?php
error_log("starting code");
require_once('connect.inc.php');
$u = $_GET['uID'];
$b = $_GET['bID'];
$n = $_GET['n'];
//do some checks etc
$db = new myConnectDB();
error_log("Successfully created DB");
$query3 = "INSERT INTO x (userID,beerID,note) VALUES ($u, '$b', '$n')";
error_log($query3);
$result = $db->query($query3);
?>
问题是错误日志显示没有任何内容放入查询中:
[01-Nov-2013 23:40:29] Successfully created DB
[01-Nov-2013 23:40:29] INSERT INTO x (userID,beerID,note) VALUES (, '', '')
我已经在ajax调用的成功中发出警报,所以我知道值正在传递...
答案 0 :(得分:1)
您需要提供类似
的数据var ajaxSettings = {
type: "POST",
url: "a.php",
data: {u:userID,b:beerID,n:note},
success: function(data){
}
data
不会和查询字符串一起,因为你通过ajax发布值,你需要通过POST来获取它们,如
$u = $_POST['u'];
$b = $_POST['b'];
$n = $_POST['n'];
您的查询应该像
$query3 = "INSERT INTO x (userID,beerID,note) VALUES ('".$u."', '".$b."', '".$n."')";
最好将转义字符串与POST
变量一起使用,以防止SQL注入。
答案 1 :(得分:0)
您正在使用post方法,因此您需要使用$_POST
或$_REQUEST
代替$_GET
$u = $_REQUEST['u'];
$b = $_REQUEST['b'];
$n = $_REQUEST['n'];