php mysql的问题。我在mysql存的字段类型为int ,为什么在php 取出来变成string 类型。

php mysql的问题。我在mysql存的字段类型为int ,为什么在php 取出来变成string 类型。,第1张

不用强制转换

因为php是弱类型

所以 就算是你认为是string类型的数据,当你需要它是int的时候,php就会把它处理成int。

举个例子吧

假如你mysql存了一个char类型的“10”

然后 赋给了$a

再后 print($a+1)

结果会是11。

即是说php根本不在乎它是何种类型。

如果你希望得到101这种结果你应该写 print($a.'1')

打开数据库那就不写了。

前几天刚写了一个。你看下

/* 表结构

CREATE TABLE `lh_categroy` (

`id` int(10) NOT NULL auto_increment,

`parentid` int(6) NOT NULL,

`name` varchar(255) NOT NULL,

`keyword` varchar(255) NOT NULL COMMENT '关键字',

`des` varchar(255) NOT NULL COMMENT '描述',

PRIMARY KEY  (`id`),

UNIQUE KEY `name` (`name`)

) ENGINE=MyISAM AUTO_INCREMENT=44 DEFAULT CHARSET=utf8

*/

/**

* 获得所有栏目排序后的列表

* @return array

*/

function getAllOrderColumns($id = 0) {

global $columns

$result = array()

if ($id) $result[$id] = $columns[$id]

foreach ($columns as $column) {

if ($column['parentid'] == $id) {

$column['level'] = 0

$result[$column['id']] = $column

getColumns($columns, $column['id'], $result, 1)

}

}

return $result

}

function getColumns($columns, $cid, &$result, $l = 1) {

foreach ($columns as $c) {

if ($c['parentid'] == $cid) {

$c['level'] = $l

$result[$c['id']] = $c

getColumns($columns, $c['id'], $result, $l + 1)

}

}

}

$sql = 'select * from lh_categroy'

$query = mysql_query($sql)

while($row = mysql_fetch_assoc($query)){

$columns[]=$row

}

$fenlei = ''

$fenlei =  '<select name="cid" style="width:200pxheight:25px">

<option value="0">请选择分类</option>'

foreach(getAllOrderColumns() as $v){

$v[name] = $v[level] ? ($v[level]==1 ? '&nbsp&nbsp|-'.$v[name]:'&nbsp&nbsp&nbsp|-'.$v[name]) : $v[name]

$fenlei .= "<option value='$v[id]'>$v[name]</option>"

}

$fenlei .= '</select>'

echo $fenlei

php 获取数据是不需要写类型的,你可以看下边的例子:

$name="张三" //这种就是字符串

$age=2 //这种就是数字

$other=array("123",22) //数组

像这些,你定义的什么类型,php就可以接受什么类型。不需要特意转


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/6141491.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-16
下一篇 2023-03-16

发表评论

登录后才能评论

评论列表(0条)

保存