程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何使用PDO bindParam将点数据插入mysql?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决如何使用PDO bindParam将点数据插入mysql??

开发过程中遇到如何使用PDO bindParam将点数据插入mysql?的问题如何解决?下面主要结合日常开发的经验,给出你关于如何使用PDO bindParam将点数据插入mysql?的解决方法建议,希望对你解决如何使用PDO bindParam将点数据插入mysql?有所启发或帮助;

请注意,参数化查询不是(简单的)字符串替换。在您的代码中,您的查询参数放在一个字符串文字中,该文字将保持不变。

尝试这个:

$LOCATIOn = 'POINT(' . $latitude . " " . $longitude . ')';
$sql = "INSERT INTO my_geodata SET LOCATIOn = PointFromText(:LOCATIOn)";
@H_404_7@ 

解决方法

细节

我想利用mysql的空间扩展,因此我试图使用bindParam将经度和纬度存储在数据类型为POINT的mysql表中。不幸的是,我不断收到错误SQLSTATE
[23000]:违反完整性约束:1048列“位置”不能为空。

我检查了经度和纬度是否有价值。因此问题必须出在我的代码上,但我看不到自己在做什么错。

这是我正在使用的代码。

$LOCATIOn=$latitude." ".$longitude;
$sql = "INSERT INTO my_geodata SET LOCATIOn = PointFromText('POINT(:LOCATIOn)')";
      //INSERT INTO my_geodata SET LOCATIOn = PointFromText('POINT(-41 12)');

try 
{
    $stmt = $dbh->prepare($sql);            
    $stmt->bindParam(':LOCATIOn',$LOCATIOn,PDO::PARAM_STR);           
    $stmt->execute();   
    $dbh = null;
}

catch(PDOException $E)
{               
    echo $error=$e->getmessage();
}

我究竟做错了什么?如何使用PDO和bindParam将经度和纬度插入到mysql表(使用POINT数据类型)中?

变异

根据AgreeOrNot的回答,实现此目标的方法略有不同

$LOCATIOn = 'POINT(' . $latitude . " " . $longitude . ')';    
$sql = "INSERT INTO my_geodata (LOCATIOn) VALUES (PointFromText(:LOCATIOn))";

大佬总结

以上是大佬教程为你收集整理的如何使用PDO bindParam将点数据插入mysql?全部内容,希望文章能够帮你解决如何使用PDO bindParam将点数据插入mysql?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。