准备好的语句和浮点数
Posted
技术标签:
【中文标题】准备好的语句和浮点数【英文标题】:Prepared statements and floats 【发布时间】:2014-02-19 13:52:49 【问题描述】:我正在玩我自己的Google maps 实现,我想通过准备好的语句和 mysqli 对象(不是链接示例中所述的 mysql)正确地完成它另外,我添加了“自己的注册”,所以我害怕SQL 注入。但是,如何将 Float 值绑定到准备好的语句?
我的表有(除其他外)FLOAT
类型列:
CREATE TABLE `markers` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`name` VARCHAR( 60 ) NOT NULL ,
`description` TEXT NOT NULL ,
`lat` FLOAT( 10, 6 ) NOT NULL ,
`lng` FLOAT( 10, 6 ) NOT NULL ,
) ENGINE = MYISAM ;
但是阅读manual我只能看到这些类型:
Character Description
i corresponding variable has type integer
d corresponding variable has type double
s corresponding variable has type string
b corresponding variable is a blob and will be sent in packets
我是否应该假设当列是 FLOAT
时,我应该使用 b
作为 blob? (因为它不是字符串,也不是双精度值)。 TEXT
类型列也一样?
【问题讨论】:
在这种情况下是字符串文本吗? 在 php 中,double 只是 float 的另一个名称。 php.net/manual/en/language.types.float.php 在 C 级别它们都存储为 double,类型的实际大小取决于平台。 好的,所以我应该假设使用 blob 是为了……好吧,blob? :) 让我的生活更轻松 :) 您是否尝试将数据库中的 lat、lng 的列类型更改为 DOUBLE?带有“d”的准备好的语句对我来说非常适合 我没有,但是将准备好的语句更改为“d”解决了问题 【参考方案1】:对非整数只使用“d”
【讨论】:
以上是关于准备好的语句和浮点数的主要内容,如果未能解决你的问题,请参考以下文章