无法在mysql中更新double类型的字段

时间:2013-09-03 06:04:06

标签: php mysql sql-update

我有一个MySQL表,其中包含以下列:

Hid     Hname    Lat                Lngt          Phone
---     -----    ---                ----          -----
Integer varchar  double(10,7)   double(10,7)  varchar

当我尝试更新列HnameLatLongtPhone时,字段LatLongt type double )未更新(HnamePhone正确更新)。 任何人都可以帮我解决问题吗?以下是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++;
}

3 个答案:

答案 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 ...“;