我有一个MySQL
表,其中包含以下列:
Hid Hname Lat Lngt Phone
--- ----- --- ---- -----
Integer varchar double(10,7) double(10,7) varchar
当我尝试更新列Hname
,Lat
,Longt
和Phone
时,字段Lat
和Longt
( type double )未更新(Hname
和Phone
正确更新)。
任何人都可以帮我解决问题吗?以下是PHP
代码段:
$i=0;
foreach($chk as $A)
{
echo $lat[$i]; echo $lon[$i]; //It displays the correct values
mysql_query("update health_block set Lat=$lat[$i], Hname='$A', Longt=$lon[$i], Phone='$phn[$i]' where Hid=$chk1[$i]",$con);
$i++;
}
答案 0 :(得分:1)
根据您的mysql查询,存在拼写错误。
你的mysql查询是
mysql_query("update health_block set Lat=$lat[$i], Hname='$A', Longt=$lon[$i], Phone='$phn[$i]' where Hid=$chk1[$i]",$con);
示例数据中的列名是'Lngt',而在mysql查询中它是'Longt',$phn[$i]
中的列名也是单引号。
如果是这样,请改用
mysql_query("update health_block set Lat=$lat[$i], Hname='$A', Lngt=$lon[$i], Phone=$phn[$i] where Hid=$chk1[$i]",$con);
最好的方法是首先将数组项分配给变量,然后将其放入mysql查询中。 例如
$latitude = $lat[$i];
$longitute = $lon[$i];
$phoneNum = $phn[$i];
$check1 = $chk1[$i];
mysql_query("update health_block set Lat='$latitude', Hname='$A', Lngt='$longitute', Phone=$phoneNum where Hid='$check1'",$con);
答案 1 :(得分:0)
mysql_query("update health_block set Lat='$lat[$i]', Hname='$A', Longt='$lon[$i]', Phone='$phn[$i]' where Hid=$chk1[$i]",$con);
答案 2 :(得分:0)
尝试使用{}和数组变量。
更新health_block set Lat = {$ lat [$ i]},Hname = XXXX ...“;