javascript - 如何在angularjs中插入和更新查询

标签 javascript php mysql angularjs json

您好,我正在尝试使用 Angularjs 在函数中插入和更新查询,并以 JSON 对象的形式返回数据。在此查询中,我正在比较年份和电子邮件。如果没有当年和电子邮件的数据,则应插入数据,否则应更新数据。但是当我尝试写入两个条件(插入和更新)时数据没有插入时。如果我只写插入查询,它正在接受。

function addrentalproperty($data)
{
    $rentalannualrent = $data->rentalProperty->rentalannualrent;
    $rentalblock = $data->rentalProperty->rentalblock;
    $rentalstreet = $data->rentalProperty->rentalstreet;
    $rentalarea = $data->rentalProperty->rentalarea;
    $rentaltown = $data->rentalProperty->rentalcity;
    $rentalstate = $data->rentalProperty->rentalstate;
    $rentalpincode = $data->rentalProperty->rentalpincode;

    session_start();
    $userInfo = $_SESSION['USER'];
    $userEmailid = $userInfo->getEmailid();
    if ($rentalannualrent != '' && $rentalblock != '' && $rentalstreet != '' && $rentalarea != '' && $rentaltown != '' && $rentalstate != '' && $rentalpincode != '') {
        $query = mysql_query("UPDATE rental_details SET
rental_annual_rent         = '$rentalannualrent',
rental_block               = '$rentalblock',
rental_street              = '$rentalstreet',
rental_area                = '$rentalarea',
rental_town                = '$rentaltown',
rental_state               = '$rentalstate',
rental_pincode             = '$rentalpincode',
WHERE email ='$userEmailid' AND currentyear=NOW()");
    } else {
        $query = mysql_query("INSERT INTO rental_details(email,rental_annual_rent,rental_block,rental_street,rental_area,rental_town,rental_state,rental_pincode,rental_ownership,currentyear)
values('$userEmailid','$rentalannualrent','$rentalblock','$rentalstreet','$rentalarea','$rentaltown','$rentalstate','$rentalpincode','$rentalownership',NOW())");
    }
    if ($query) {
        $successJson = '{"success":"Rental Property Details Added Successfully."}';
        print_r($successJson);
    } else {
        $failureJson = '{"error":"Problem While Saving Property Details."}';
        print_r($successJson);
    }
}

最佳答案

问题是,NOW() 将提供当前日期和时间,但不会提供年份。

但是您正在使用 NOW() 来检查更新查询中的当前年份。

如果您插入年份并尝试通过检查当前时间来更新,这可能会成为一个问题。

另一件事是,如果您在当前年份字段中插入当前时间,那么您的更新查询将永远无法工作。

您应该使用 YEAR(CURDATE()) 获取当前年份。

使用下面的查询并检查。

$query=mysql_query("UPDATE rental_details SET
                         rental_annual_rent         = '$rentalannualrent',
                         rental_block               = '$rentalblock',
                         rental_street              = '$rentalstreet',
                         rental_area                = '$rentalarea',
                         rental_town                = '$rentaltown',
                         rental_state               = '$rentalstate',
                         rental_pincode             = '$rentalpincode',
                         WHERE email ='$userEmailid' AND currentyear=YEAR(CURDATE())"); 

编辑 1:

它不会插入。由于以下情况,

if($rentalannualrent!='' &&$rentalblock!='' &&$rentalstreet!='' &&$rentalarea!='' &&$rentaltown!='' &&$rentalstate!='' &&$rentalpincode!='')
{

插入查询需要所有这些值。显然,所有的变量都应该设置好并且应该有一些值。

如果所有这些变量都有任何数据,它总是会转到 UPDATE 部分。您的 INSERT 查询将永远不会执行。

理想情况下数据库中没有数据。因此,UPDATE 也将不起作用。

因此,检查您的条件并更改逻辑。

编辑 2:

$userEmailid= $userInfo-> getEmailid();

$result=mysql_query("SELECT * FROM rental_details WHERE email ='$userEmailid' AND currentyear=YEAR(CURDATE())";
$records = mysql_num_rows($result);

if($records > 0) { 
   // UPDATE query
} else {
  // INSERT query
}

PS:不要使用Mysql_。它已被弃用。请切换到 mysqli_(或)PDO。

关于javascript - 如何在angularjs中插入和更新查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35740698/

相关文章:

mysql - 根据顺序引用另一列的 ID 的列

更新对象字段的 Javascript 函数

javascript - jQuery,从左到右缩小div宽度

php - 在 in_array() 和 || 之外使用什么更好运算符(operator)?

php - 如何创建第一个数据库用户帐户?

php - 代码点火器 : insert data in database

php - 将 Open ID 与我当前的登录系统合并?

javascript - 在 javascript 中倒计时到明天的日期?

javascript - 更改所有 <td> 行中的 innerHTML

php - SQL 查询 onsubmit - 更改现有结果