当从ajax请求调用时,php脚本可以更新我的sql吗?
我有一个脚本,可以向php脚本发出ajax请求当从ajax请求调用时,php脚本可以更新我的sql吗?,php,ajax,json,Php,Ajax,Json,我有一个脚本,可以向php脚本发出ajax请求 // ajax request for Weather $.ajax({ type: "POST", url: "Json/weatherAPI.php" , data: { postcode: postcode, display:'fadeout' , color:'blue' ,
// ajax request for Weather
$.ajax({
type: "POST",
url: "Json/weatherAPI.php" ,
data: {
postcode: postcode,
display:'fadeout' ,
color:'blue' ,
timed_display:'20'},
dataType: 'json',
success:JsonDataReturned ,
});
这将调用我的PHP脚本,然后查询天气API并将Json数据返回到上面的脚本,所有这些都可以正常工作(下面)
$postcode = $_POST['postcode'];
$url = "http://www.myweather2.com/developer/forecast.ashx?uac=" . $api . "&output=json&query=" . $postcode ;
$response = fopen($url, "r");
$response = fgets($response, 4096);
echo $response ;
在此之后,在同一个PHP脚本中,我想用“post”数据更新我的SQL DB,请参见下文(数据库已连接)
我相信一切看起来都不错,我知道我有“post”数据,但它不会更新我的数据库,但是如果我单独运行php脚本(没有ajax调用),它会更新。我的问题:当作为ajax请求调用时,我的PDO语句是正确的还是PHP脚本没有正确执行
有什么帮助吗?,PHP不知道请求是否是AJAX,除非您设置了一个变量并自己检查它,所以请求应该可以工作。我怀疑PHP正在寻找“POST”变量,但您的ajax可能正在发送一个必须解码的JSON字符串。做一个print_r($_POST),看看“单独”运行还是通过ajax调用运行的区别。您可能需要解析传入的JSON(在请求体中)。不管是什么,打印出来的内容都会帮助你发现问题。你能把这行移到echo$response;在最后一秒和第三秒中,您只需快速访问数据库即可。SQL注入呃?移动回显不会改变任何东西我检查了post数据,并且在语句中看起来都是正确的。如何单独运行php脚本?我在php脚本中生成了一些post数据$_post['top']=“9999”;等
$query = 'UPDATE data_weather_control SET ';
$values = array();
foreach ( $_POST as $key => $value ) {
$query .= ' '.$key.' = :'.$key.','; // the :$name part is the placeholder, e.g. :zip
$values[':'.$key] = $value; // save the placeholder
};
$query = substr($query, 0, -1) ; // remove last ,
$query .= " WHERE id='dataman' " ;
$qry = $pdo->prepare($query);
$qry->execute($values); // bind placeholder array to the query and execute everything