我正在尝试mysql_query()
;如果那是成功的我不想做另一个,它必须更新另一个表中的字段。
我的 mysql_query();代码如下所示:
$query = mysql_query($sql)or die(mysql_error());
if($query){
$sqlU = mysql_query("UPDATE lookup SET lookupStatus=1 WHERE lookupId=".(int)$post['FK_lookupId']."");
return true;
}
问题中未提供的$sql
只是一个简单的INSERT
语句。
$sqlU UPDATE
语句甚至没有运行。
mysql_query()
;返回true,它正在切断PHP的其余部分。
我的jQuery:
$('#lookupAnswerGo').submit(function() {
var dataString = $(this).serialize();
$.ajax({
type: "POST",
url: "/includes/classes/handler.php?do=addLookupAnswer",
data: dataString,
success: function(returnedData){
if(returnedData){
$('.errorMessage').fadeIn().html(returnedData);
} else {
window.location.href = "";
}
}
});
return false;
});
如果我对这个问题是正确的是AJAX,那么如何防止它切断我的PHP呢?
答案 0 :(得分:1)
也许你可以尝试一个更健壮的版本来检查第一个查询是否运行,如下所示:
$query = mysql_query($sql)or die(mysql_error());
if( mysql_affected_rows() > 0 )
{
$sqlU = mysql_query("UPDATE lookup SET lookupStatus=1 WHERE lookupId=".(int)$post['FK_lookupId']."");
return true;
}
没有理由认为这是AJAX调用的问题。 php脚本的执行仅以php语句结束 - 即返回或死亡。 AJAX本身无法确定查询是否完成(除非您在php中提供了适当的语句)。