PHP/MySQL 无法更新 double 值

标签 php mysql

所以我正在使用 PHP/MySQL,并且我有一个包含以下字段的 tbl_profile 表:

loginid, venueTitle, description, address, long, lat.

当我说我已经测试并且更新和检索除 long 和 lat 之外的每个字段的数据时没有问题时,您必须相信我。 long 和 lat 字段的类型为 double 并且通过 phpmyadmin 提供的 GUI 我已经能够插入值然后检索该信息但是由于某种原因当我尝试使用 UPDATE 查询时我似乎无法让它做任何事情.这里有两个查询,第一个有效,第二个导致 NOTHING 被更新。我打印出 $longitude 和 $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

最佳答案

longreserved word在 MySQL 中。使用 mysql_error() 会在 long='<longtitude value>' 指出您的问题.

要么更改您的列名,要么在查询中将它们用反引号括起来,例如

UPDATE tbl_profile SET `long` = something ...

此外,您的代码似乎对 SQL 注入(inject)开放。我会认真考虑切换到 PDO 并使用带有绑定(bind)参数的准备好的语句。

关于PHP/MySQL 无法更新 double 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6181600/

相关文章:

php - 用于运行 php 脚本的 Bash 脚本

php - 在第二个 PHP 页面上未选取表单上的选定回复

mysql - Rails 失去与 MySQL 的连接

php - 根据复选框编辑中间表

mysql - 格式和圆形mysql的区别

mysql - 如何将一个表中的一行更新到另一个表中?

php - 查找包含多个电子邮件的单元格,并将它们分成不同的表格,所有其他信息都相同

javascript - PHP-Jquery 自动完成与动态输入字段?

javascript - 为什么服务器端和客户端脚本不能交互?

6GB RAM 的 mysql my.cnf 配置