首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >即使行尚未创建,数据库查询也会执行

即使行尚未创建,数据库查询也会执行
EN

Stack Overflow用户
提问于 2018-01-31 03:34:03
回答 1查看 24关注 0票数 0

我不明白为什么在一个字段不存在的操作上mysqli_query会返回true。当字段run_id与变量$id匹配时,我正在尝试UPDATE一个字段。但是,如果未设置$id,则会执行if语句中的回显。会非常感谢你对这一现象的看法。

代码语言:javascript
复制
function sumMiles($id,$runnerRow,$weekArray,$cnn){
    //Calculate cumulative miles per week for every runner
    $weekMiles=0; //total miles per week
    foreach($weekArray as $weekday)
        {
            $weekMiles+=$runnerRow[$weekday];
        }
        $addMiles = "UPDATE run SET weekly_total = {$weekMiles} WHERE run_id=$id";//add weekly total into the database's run table 
        if (mysqli_query($cnn,$addMiles)){
            echo "Your weekly total has been updated";
            return $weekMiles;
        }
        else {echo "Your weekly total could not be updated";}
    }

我像这样调用这个函数:

代码语言:javascript
复制
$weekMiles = sumMiles($id,$dailyMileage,$weekArray,$cnn);
EN

回答 1

Stack Overflow用户

发布于 2018-01-31 03:39:39

这一行不存在的事实不会在数据库中产生任何异常。

在运行更新之前,首先验证该行是否存在

代码语言:javascript
复制
  select count(1) from  run WHERE run_id=$id

编辑

需要检查Count(1)是否大于0

代码语言:javascript
复制
$query = "SELECT count(1) from run WHERE run_id=$id"; 
if (mysqli_query($cnn,$query)>0){ 
 $addMiles = "UPDATE run SET weekly_total = {$weekMiles} WHERE run_id=$id"; 
 echo "updated"; 
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48529187

复制
相关文章

相似问题

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