【发布时间】: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”解决了问题
标签: php google-maps mysqli prepared-statement