为什么获取到的这个枚举类型是问号呢? 我在mysql控制台看的确是中文字呢。 字符集PHP和mysql都是utf8,怎么获取到这个枚举类型的值。
<?php
header ( "Content-Type:text/htmlcharset=utf-8" )
$host = "localhost"
$user = "root"
$password = ""
@$conn = mysql_connect($host,$user,$password) or die("数据库连接失败,请检查数据库配置!" . mysql_error())
$tableName = "viuoo"
mysql_select_db($tableName,$conn) or die('数据库表选择出错,请检查数据库表名是否正确!')
mysql_query("SET NAMES 'utf-8'")
$dm = "SELECT * FROM user"
$result = mysql_query($dm,$conn)
while($res = mysql_fetch_row($result)){
print_r($res)
}
?>
mysql php utf8 数据库
------解决方案--------------------
mysql_query("SET NAMES 'utf-8'")
改成
mysql_query("SET NAMES 'UTF8'")
1、这个类型可以多种:int, char(n) -- 只要约定好就行,存贮枚举值的代码2、枚举类型的允许值,可以由DB保证(比如在tradeInfo.tradeType上加约束);也可以只是由程序来控制 -- DB中加上约束会强壮一些,但会牺牲性能;
3、为了软件界面的易读性,通常需要让枚举值可读。每个枚举值对应的文本最好存贮在DB中。这个称为MasterData。可以建一张表存贮
4、如果有对应的主数据表,前面2中的约束,就可以改为Foreign Key
至于JAVA编程,枚举类型的处理,可以使用常量,也可以更优雅地定义一个类。
DATETIME : 混合日期和时间值TIMESTAMP : 混合日期和时间值,时间戳
TIME :时间值或持续时间
YEAR :年份值
CHAR :定长字符串
VARCHAR: 变长字符串
TINYBLOB : 不超过255个字符的二进制字符串
BLOB :二进制形式的长文本数据
MEDIUMBLOB : 0 - 16777215字节 二进制形式的中等长度文本数据
LONGBLOB : 0 - 4294967295字节 二进制形式的极大文本数据
TINYTEXT : 0 - 255字节 短文本字符串
TEXT :0 - 65535字节 长文本数据文本
MEDIUMTEXT : 0 - 16777215字节 中等长度文本数据
LONGTEXT : 0 - 4294967295字节 极大文本数据
ENUM : 枚举;列可赋予某个枚举成员
SET:集合;列可赋予多个集合成员
BINARY :类似Char的二进制存储,特点是插入定长不足补0
VARBINARY : 类似VarChar的变长二进制存储,特点是定长不补0
BIT :无符号[0,255],有符号[-128,127]
BOOLEAN : 布尔型,功能等同于微整型TINYTINT
GEOMETRY :层次结构的根类
POINT :点。指的是代表坐标空间中单个位置的几何类
LINESTRING :具有点之间线性内插特性的Curve
POLYGON:代表多边几何对象的平面Surface
MULTIPOINT :一种由Point元素构成的几何对象集合
MULTILINESTRING : 是一种由 LineString元素构成的MultiCurve几何对象集合
MULTIPOLYGON:是一种由Polygon元素构成的几何对象集合
参考资料:mysql 官方文档(网站)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)