首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在angularjs中插入和更新查询

问如何在angularjs中插入和更新查询
EN

Stack Overflow用户
提问于 2016-03-02 07:12:18
回答 1查看 600关注 0票数 1

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

代码语言:javascript
复制
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);
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-02 07:23:21

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

但是,您正在使用NOW()在更新查询中对照当前年份进行检查。

如果您插入年份并试图通过检查当前时间进行更新,这可能是一个问题。

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

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

使用下面的查询和检查。

代码语言:javascript
复制
$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 :

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

代码语言:javascript
复制
if($rentalannualrent!='' &&$rentalblock!='' &&$rentalstreet!='' &&$rentalarea!='' &&$rentaltown!='' &&$rentalstate!='' &&$rentalpincode!='')
{

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

如果所有这些变量都有任何数据,则将始终转到UPDATE部分。您的插入查询将永远不会被执行。

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

所以,检查你的状况并改变逻辑。

编辑2 :

代码语言:javascript
复制
$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。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35740698

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档