编辑:
在if($_POST['email']){
期间$rf
是空白的-但是为什么它不是空白的呢?我该如何解决这个问题呢?
$rf = $_GET['_id'];
//$_GET['_id']; is generated by ME
if ( ! empty($rf))
{
$mysqli->query("UPDATE cse SET clicks = clicks + 1 WHERE code='" . $rf ."'");
}
//this works. it adds 1 to the counter of clicks column for that referring users row
if($_POST['email']){
// Requested with AJAX:
$ajax = ($_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest');
try{
if(!filter_input(INPUT_POST,'email',FILTER_VALIDATE_EMAIL)){
throw new Exception('Invalid Email!');
}
$mysqli->query("INSERT INTO cse
SET email='".$mysqli->real_escape_string($_POST['email'])."'");
if($mysqli->affected_rows != 1){
throw new Exception('exists in the database.');
} else {
$ecode = add_code($mysqli->insert_id);
}
if(!empty($rf)){
$mysqli->query("UPDATE cse SET sign_ups = sign_ups + 1 WHERE code='" . $rf ."'");
//this does not work. it should add 1 to the counter of sign_ups column for that referring users row
}
if($ajax){
die(json_encode(array('msg' => $msg)));
}
}
catch (Exception $e){
if($ajax){
die(json_encode(array('error'=>$e->getMessage())));
}
$msg = $e->getMessage();
}
}
编辑:对于下面的评论,是已经绑定在JS中
$.post("./index.php",{email:$('#email').val()},function(r){
if(r.error){
$('#email').val(r.error);
} else {
$('#email').val(r.msg);
}
working = false;
},'json');
发布于 2011-03-18 14:37:31
鉴于上面的众多评论都没有指出一个显而易见的问题--您没有对您的查询进行错误检查。如果mysqli查询失败,则返回FALSE。如果查询成功,则返回TRUE或结果对象。
与其只是猜测问题是什么,为什么不做显而易见的事情,让mysql确切地告诉你问题是什么。无论您在何处运行查询,都使用以下逻辑将使调试此问题变得更加容易:
$result = $mysqli->query("UPDATE cse SET clicks = clicks + 1 WHERE code='" . $rf ."'");
if ($result === FALSE) {
die("Mysql error: " . $mysqli->error);
}
记住-查询成功只有一种方法,失败的方法有很多种,即使您执行的SQL语句在语法上是正确的。
https://stackoverflow.com/questions/5350845
复制