【问题标题】:error in where statement in phpphp中where语句的错误
【发布时间】:2013-07-08 08:19:31
【问题描述】:
function get_place_info1($latitude,$longitude)
    {
        $t=round($latitude,4);
        $t1=round($longitude,4);
        $this->db->select('name');
        $this->db->from('place');
        $this->db->where(round('Latitude',4), $t);
        $this->db->where(round('Longitude',4),$t1);
        $q = $this->db->get();
        $res = $q->result();
        return $res;
    }

$latitude 和 $longitude 是双倍的,我想对它们进行四舍五入,但是当我执行它时会给我这个错误

Error Number: 1054  
Unknown column 'name' in 'field list'
SELECT `name` FROM (`place`) WHERE `0` = 33.5041 AND `0` = 36.3033
Filename: C:\wamp\www\tourism\system\database\DB_driver.php
Line Number: 330

这有什么问题?

【问题讨论】:

  • name 列在place 表中似乎不存在。
  • 你能发布你的表结构吗?
  • 请格式化您的代码。什么都看不懂。
  • @Sos 请使用 CODE markdown 格式化您的代码。
  • 请提供您的数据库结构。

标签: php codeigniter phpmyadmin


【解决方案1】:

数据库表中似乎不存在“名称”列。

此外,您正在对字符串执行浮点循环调用

round('纬度',4)

您可能应该只输入字段名称。但是如果没有数据库模式,这很难说

$this->db->where('Latitude', $t);
$this->db->where('Longitude',$t1);

【讨论】:

  • 列名不是名称而是 place_name thx 现在它给了我这是错误的------- 错误号:1054 'where 子句'中的未知列'0' SELECT @987654322 @ FROM (place) WHERE 0 = 33.5041 AND 0 = 36.3033 文件名:C:\wamp\www\tourism\system\database\DB_driver.php 行号:330 有什么问题?
  • 地点表包含“纬度双PK,经度双PK,place_name varchar,历史文本”
  • 那么你的列名不应该大写,但这在 MySQL 中应该不是问题。问题是round('any non-numeric string', 4)——它总是会给你一个零值,然后 DB 类将其作为列名。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-09-03
  • 2012-06-04
  • 1970-01-01
  • 2018-06-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多