BIT[(M)]
网站建设哪家好,找成都创新互联!专注于网页设计、网站建设、微信开发、小程序设计、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了贵定免费建站欢迎大家使用!
位字段类型。M表示每个值的位数,范围为从1到64。如果M被省略, 默认为1。
· TINYINT[(M)] [UNSIGNED] [ZEROFILL] (同义词 )
很小的整数。带符号的范围是-128到127。无符号的范围是0到255。
这里的TINYINT有符号和无符号为什么会存在这么大的差异呢?这就是今天重点要说的问题。Tinyint占用1字节的存储空间,即8位(bit)。那么Tinyint的取值范围怎么来的呢?我们先看无符号的情况。无符号的最小值即全部8位(bit)都为0,换算成十进制就是0,所以无符号的Tinyint的最小值为0.无符号的最大值即全部8bit都为1,11111111,换算成十进制就是255.这很好理解。有符号的Tinyint的取值范围是怎么来的呢?在计算机中,用最高位表示符号。0表示正,1表示负,剩下的表示数值。那么有符号的8bit的最小值就是
11111111=-127
表示负值
最大值:
01111111=+127
表示正值
希望可以帮到你!知道的就是这么多。
php+mysql数据时我们必须保证提交到数据库的编码与mysql编码是一致的这样才可以保存中文不出现问号乱码问题,下面我先整理两个让mysql与页面保证编码一致的方法。
解决中文插入数据库乱码的方法:
直接把中文转变成utf-8格式,大多是这个问题导致的。
代码如下复制代码
$str
=
iconv('gbk','utf-8',$str);
如果还不行检查网页编码是否正确:
代码如下复制代码
?php
header("Content-Type:text/html;charset=utf-8");
?
建表:
代码如下复制代码
Create
TABLE
`net_city`
(
`cityid`
smallint(4)
NOT
NULL
auto_increment,
`cityname`
varchar(80)
NOT
NULL
default
'',
`provinceid`
smallint(2)
NOT
NULL
default
'0',
`inarea`
varchar(5000)
NOT
NULL
default
'',
`outarea`
varchar(5000)
NOT
NULL
default
'',
`tel`
varchar(400)
NOT
NULL
default
'',
PRIMARY
KEY
(`cityid`)
)
ENGINE=MyISAM
DEFAULT
CHARSET=utf8;
PHP里的代码:
$conn=mysql_connect("localhost",
"用户名",
"密码");
mysql_query("set
names
'utf8'",$conn);
mysql_select_db("
数据名",$conn);
$exec="insert
into
net_city
(cityname,inarea,outarea,tel)
values
('".$link_cityname."','".$link_inarea."','".$link_outarea."','".$link_tel."')";
$result=mysql_query($exec,$conn);
if($result){
echo
"1";
}else{
echo
"0";
}
mysql_close($conn);
后来我试了试全部都用成gbk的,也是可以的~
在查询数据时我们直接使用mysql_query()来设置
mysql_query("SET
NAMES
GBK");
//GBK处为编码设置
例子
下面是
"insert.php"
页面的代码:
代码如下复制代码
?php$con
=
mysql_connect("localhost","peter","abc123");
if
(!$con)
{
die('Could
not
connect:
'
.
mysql_error());
}
mysql_select_db("my_db",
$con);
mysql_query("SET
NAMES
GBK");
//GBK处为编码设置
$sql="INSERT
INTO
person
(FirstName,
LastName,
Age)VALUES('$_POST[firstname]','$_POST[lastname]','$_POST[age]')";
if
(!mysql_query($sql,$con))
{
die('Error:
'
.
mysql_error());
}
echo
"1
record
added";
mysql_close($con)
?
FLOAT[(M,D)] [UNSIGNED] [ZEROFILL]
M是小数总位数,D是小数点后面的位数
DOUBLE[(M,D)] [UNSIGNED] [ZEROFILL]
M是小数总位数,D是小数点后面的位数
DECIMAL[(M[,D])] [UNSIGNED] [ZEROFILL]
M是整数位 D是小数位数
后面参参数可先
1、一般16位MD5就是截取32位的中间16位
2、mysql可以用SUBSTRING截取字符串
用法:substring(被截取字段,从第几位开始截取,截取长度)
例如:select SUBSTRING(md5('123456'),9,16) from dual;
49ba59abbe56e057
3、如果是密码可以用password()函数
SET old_passwords = 1;
show variables like ‘%old%';
| old_passwords | ON |
select password(‘123456′)from dual;
| 565491d704013245 |
可以在建表的时候限定小数点的长度,例如decimal(5,2),后面的2就是2位的意思。
如果表已经建好,可以在查询语句中用函数 round(X,2) 转换,X为字段,后面的数字为长度,你要几位就填几。