所以我使用的是PHP / MySQL,我有一个带有以下字段的tbl_profile表:
loginid,venueTitle,description,address,long,lat。
当我说我已经测试过并且没有问题更新和从除long和lat之外的每个字段中检索数据时,你将不得不相信我。 long和lat字段是double类型,并且通过phpmyadmin提供的GUI我已经能够插入值然后检索该信息但是由于某种原因当我尝试使用UPDATE进行查询时我似乎无法让它做任何事情。这是两个查询,第一个工作,第二个导致NOTHING更新。我打印出$经度和$ latitude只是为了仔细检查值是否正确并且打印正确。我甚至将它们转换为doubleval来尝试确保它们与表中的字段类型相同。有任何想法吗?我假设经度和纬度没有被识别为与表中相同的类型,但我不知道为什么会这样。
$sql = "UPDATE tbl_profile SET venueTitle='$v', description='$d', address='$a' WHERE
loginid='$username'"; // this query works
$longitude = doubleval($north);
$latitude = doubleval($east);
$sql = "UPDATE tbl_profile SET venueTitle='$v', description='$d', address='$a', long
='$longitude', lat='$latitude' WHERE loginid='$username'"; // doesn't work
答案 0 :(得分:1)
long
是MySQL中的reserved word。使用mysql_error()
会在long='<longtitude value>'
指出您的问题。
更改列名或将其包装在查询中的反引号中,例如
UPDATE tbl_profile SET `long` = something ...
此外,您的代码似乎对SQL注入开放。我会认真考虑切换到PDO并使用带有绑定参数的预处理语句。