从PHP中的MySQL表中选择时,结果总是字符串。有没有办法获得正确的数据类型?
考虑我的表:
CREATE TABLE bar(
id INT,
price FLOAT,
name VARCHAR(40));
现在我要做的是:
$result = mysql_query("SELECT id,price,name FROM bar");
while($row = mysql_fetch_assoc($result))
{
$row['id'] = (int)$row['id'];
$row['price'] = (double)$row['price'];
}
mysql_free_result($result);
有没有办法透明地从查询中正确获取数据类型?
10倍, 特拉维夫
答案 0 :(得分:2)
不,来自mysql的所有数据实际上都是一个字符串,你无法用它做任何事情。
答案 1 :(得分:0)
这不是问题的答案,而是解决问题的方法(黑客?)。
CREATE TABLE bar(
int_id INT,
float_price FLOAT,
varchar_name VARCHAR(40)
);
然后,在检索所有内容时,循环遍历列/键名称并根据类型(第一个下划线之前的所有内容)和列名称(第一个下划线之后的所有内容)处理它们。
此外,这需要您编辑表格......这可能会有问题。
答案 2 :(得分:-1)
伪:
if(is_int())
(int)....
else if(is_float())
(float)...
else ...
并检查您期望的所有类型...... 作为最后的手段,它始终是字符串。
但如果您使用PDO,您可以获取该列的dataTypes并相应地进行转换......