【问题标题】:How to use POINT mysql type with mysqli - php [duplicate]如何在 mysqli 中使用 POINT mysql 类型 - php [重复]
【发布时间】:2014-12-05 20:11:19
【问题描述】:

基于来自 PHP .net 的this table:

类型规范字符 人物描述 我对应的变量具有整数类型 d 对应变量的类型为 double s 对应的变量为字符串类型 b 对应的变量是一个 blob,将在数据包中发送

我写代码:

$stmt = $this->conn->prepare("INSERT INTO days(day,startLocation) VALUES(?,?)");
        $stmt->bind_param("ss", $day, $startLocation);

但问题是因为我在数据库中的 startLocation 字段使用类型POINT,所以

如何在 mysql 中使用 POINT dataType 制作 bind_param?

【问题讨论】:

  • 在php.net上哪里可以找到上述表格?
  • INSERT INTO days(day,startLocation) VALUES(?, POINT(?, ?)?
  • 不,我收到错误 Call to a member function bind_param() on a non-object in - 在 INSERT 等所在的那一行...
  • bind_param() on a non-object 错误意味着prepare() 调用已经失败,因此 SQL 语句本身而不是变量类型有问题。在尝试调用prepare() 后检查echo $this->conn->error; 找出原因。

标签: php mysql mysqli


【解决方案1】:

您应该使用 MYSQL 函数 POINT 来转换纬度/经度

$stmt = $this->conn->prepare("INSERT INTO days(day,POINT(lat,lon)) VALUES(?,?,?)");
        $stmt->bind_param("sdd", $day, $lat, $lon);

【讨论】:

    猜你喜欢
    • 2021-11-05
    • 1970-01-01
    • 2015-08-29
    • 2013-10-12
    • 2017-07-13
    • 2018-03-18
    • 1970-01-01
    • 2014-04-03
    • 2017-02-09
    相关资源
    最近更新 更多