如何在php中更新mysql数据库 $query=“更新考勤 设置 `第1天`='$day1'、`day2`='$day2'、`day3`='$day3'、`day4`='$day4', `第5天`='$day5'、`day6`='$day6'、`day7`='$day7'、`day8`='$day8', `第9天`='$day9','day10`='$day10','day11`='$day11','day12`='$day12', `第13天`='$day13','day14`='$day14','day15`='$day15','day16`='$day16', `第17天`='$day17','day18`='$day18','day19`='$day19','day20`='$day20', `day21`='$day21'、`day22`='$day22'、`day23`='$day23'、`day24`='$day24', `第25天`='$day25'、`day26`='$day26'、`day27`='$day27'、`day28`='$day28', `第29天`='$day29'、'day30`='$day30'、'day31`='$day31'、'facture`='$a1', `学科“=”$d1“、”家庭死亡“=”$fd1“、”家庭疾病“=”$fi1”, `假日“=”$h1“,”疾病“=”$i1“,”陪审团职责“=”$j1“,”休假“=”$l1”, `裁员“=”$lo1“,”个人“=”$p1“,”迟到“=”$t1“,”休假“=”$v1” 其中'month`='一月'; $result=mysql\u query($query);

如何在php中更新mysql数据库 $query=“更新考勤 设置 `第1天`='$day1'、`day2`='$day2'、`day3`='$day3'、`day4`='$day4', `第5天`='$day5'、`day6`='$day6'、`day7`='$day7'、`day8`='$day8', `第9天`='$day9','day10`='$day10','day11`='$day11','day12`='$day12', `第13天`='$day13','day14`='$day14','day15`='$day15','day16`='$day16', `第17天`='$day17','day18`='$day18','day19`='$day19','day20`='$day20', `day21`='$day21'、`day22`='$day22'、`day23`='$day23'、`day24`='$day24', `第25天`='$day25'、`day26`='$day26'、`day27`='$day27'、`day28`='$day28', `第29天`='$day29'、'day30`='$day30'、'day31`='$day31'、'facture`='$a1', `学科“=”$d1“、”家庭死亡“=”$fd1“、”家庭疾病“=”$fi1”, `假日“=”$h1“,”疾病“=”$i1“,”陪审团职责“=”$j1“,”休假“=”$l1”, `裁员“=”$lo1“,”个人“=”$p1“,”迟到“=”$t1“,”休假“=”$v1” 其中'month`='一月'; $result=mysql\u query($query);,php,mysql,Php,Mysql,此处更新的day1值(值为1),更新值day2旁边的值为1, 在此期间,day2值更新(1),但day1值更改为零 我该怎么做?按照您的查询措辞,所有变量(如$day1)都必须在PHP中设置。如果不是,则将一个空字符串粘贴到请求中,然后MySQL服务器将该请求转换为零 因此,如果您只想修改day2,请执行以下操作: UPDATE attendance SET day2 = ? WHERE month = 'January' 也就是说,您可以通过多种方式改进当前的方法 你不应该按原样使用 您不

此处更新的
day1
值(值为1),更新值
day2
旁边的值为1, 在此期间,
day2
值更新(1),但
day1
值更改为零


我该怎么做?

按照您的查询措辞,所有变量(如
$day1
)都必须在PHP中设置。如果不是,则将一个空字符串粘贴到请求中,然后MySQL服务器将该请求转换为零

因此,如果您只想修改
day2
,请执行以下操作:

UPDATE attendance SET day2 = ? WHERE month = 'January'
也就是说,您可以通过多种方式改进当前的方法

  • 你不应该按原样使用
  • 您不应该直接将变量包含到查询中,因为这会打开漏洞和SQL注入漏洞的大门。在执行此查询时,请使用诸如
    之类的占位符和实际值
  • 每天有一列看起来像是一个非常糟糕的数据库模式。取而代之的是一张每天只有一行的桌子。您可以根据输出计算每月概览,但一般来说,这样的请求在DB级别上更容易处理。如果您希望每个月有一些列,您可以将它们放在一个额外的表中
  • 您可能应该按照刚才描述的内容,使用。如果您确实需要一个每个月有一行的表,那么您仍然可以使用
    日期来描述它,使用月的第一天来标识整个月。这将允许您在该列上轻松使用日期和时间函数。如果您想要单独的年和月列,我想我仍然会通过数字而不是名称来标识月份

你知道什么是标准化吗?你确定所有变量都设置好了吗?(
var_dump($day1、$day2、$day3…)
)。如果是,可能您的表结构不适合变量类型。