Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 无法在mysql中更新double类型的字段_Php_Mysql_Sql Update - Fatal编程技术网

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

Php 无法在mysql中更新double类型的字段,php,mysql,sql-update,Php,Mysql,Sql Update,我有一个带有以下列的MySQL表: Hid Hname Lat Lngt Phone --- ----- --- ---- ----- Integer varchar double(10,7) double(10,7) varchar 当我尝试更新列Hname、Lat、long和Phone时,字段Lat和long(键入double)没有更新(Hname和Phone

我有一个带有以下列的
MySQL
表:

Hid     Hname    Lat                Lngt          Phone
---     -----    ---                ----          -----
Integer varchar  double(10,7)   double(10,7)  varchar
当我尝试更新列
Hname
Lat
long
Phone
时,字段
Lat
long
(键入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++;
}

根据您的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查询中是'lont',在
$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);

尝试将{}与数组变量一起使用

更新运行状况\块集Lat={$Lat[$i]},Hname=XXXX。。。“


请显示
var_dump($lat[$i]);var_dump($lon[$i]);
它将类型显示为字符串。我刚刚将它们括在引号中。它现在可以正常工作。感谢您的建议检查下面的答案和详细信息。您需要检查mysql_query()的错误。但是字段名为“long”(如query中所示).事实上,问题是,我漏掉了引语。它现在很好用。
mysql_query("update health_block set Lat='$lat[$i]', Hname='$A', Longt='$lon[$i]', Phone='$phn[$i]' where Hid=$chk1[$i]",$con);