请高手解答 你虚拟主机上cz_dq字段是int型吧? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 数据库都是一样的,在本地cz_dq字段也是int型的 desc house_cz;贴一下你的结果,看一下你的表结构。 另外就是字符集的设置是否相同?http://blog.csdn.net/ACMAIN_CHM/archive/2009/05/12/4174186.aspxMySQL 中文显示乱码 Variable_name Value character_set_client utf8 character_set_connection utf8 character_set_database latin1 character_set_filesystem binary character_set_results utf8 character_set_server latin1 character_set_system utf8 character_sets_dir E:\Program Files\MySQL\MySQL Server 5.0\share\charsets\ 这是当前联接系统参数下面是数据库表中字段的字符集设置Table Create Table house_cz CREATE TABLE `house_cz` ( `id` int(10) unsigned NOT NULL auto_increment, `cz_dq` int(3) NOT NULL, `cz_addr` char(40) NOT NULL, `cz_type` int(3) NOT NULL, `cz_new` tinyint(2) NOT NULL, `cz_subtype` char(20) NOT NULL, `cz_hx` char(20) NOT NULL, `cz_hx1` char(6) NOT NULL, `cz_hx2` char(6) NOT NULL, `cz_areas` float NOT NULL, `cz_price` float NOT NULL, `cz_pricetype` char(20) NOT NULL, `cz_pay` char(8) NOT NULL, `cz_sumfloor` tinyint(2) NOT NULL, `cz_dofloor` tinyint(2) NOT NULL, `cz_pointto` char(8) NOT NULL, `cz_intime` int(4) NOT NULL, `cz_jcss` char(40) NOT NULL, `cz_sbqk` char(100) NOT NULL, `cz_zbpt` char(100) NOT NULL, `cz_zxcd` char(10) NOT NULL, `cz_ifzj` char(10) NOT NULL, `cz_content` varchar(600) NOT NULL, `pic1` varchar(50) NOT NULL, `pic2` varchar(50) NOT NULL, `pic3` varchar(50) NOT NULL, `pic4` varchar(50) NOT NULL, `pic5` varchar(50) NOT NULL, `pic6` varchar(50) NOT NULL, `cz_lxr` char(10) NOT NULL, `cz_sex` char(6) NOT NULL, `cz_tel` char(20) NOT NULL, `cz_mobile` char(30) NOT NULL, `cz_address` char(50) NOT NULL, `cz_mail` char(32) NOT NULL, `cz_uid` int(10) unsigned NOT NULL, `cz_addtime` int(10) unsigned NOT NULL, `cz_veiw` tinyint(1) NOT NULL default '1', `cz_infotype` char(4) NOT NULL, `hits` int(6) NOT NULL, `cz_hz` tinyint(2) NOT NULL, `tjtime1` int(10) NOT NULL default '0', `tjtime2` int(10) NOT NULL default '0', `cz_photo` varchar(500) default NULL, `fynumber` varchar(20) default NULL, `ipaddress` varchar(20) default NULL, PRIMARY KEY (`id`), KEY `cz_dq` (`cz_dq`), KEY `cz_type` (`cz_type`), KEY `cz_hx` (`cz_hx`)) ENGINE=MyISAM AUTO_INCREMENT=5 DEFAULT CHARSET=gbk 是不是字符集的问题呢,请指教. desc house_cz后cz_dq这个字段的结果cz_dq int(3) NO MUL NULL show variables like 'sql_mode';看一下 `cz_dq` int(3) NOT NULL, update house_cz set cz_infotype='个人',cz_dq='红花岗区' ...你想把字符型赋给int型,怎么可能呢? `cz_dq` int(3) NOT NULL,是INT型,可以你的SQL语句却试图插入字符串。 MySQL Error: 1366 (Incorrect integer value: '红花岗区' for column 'cz_dq' at row 1) ---------------------------------这里面错误已经说得很明显了,不正确的'红花岗区'整型值 所以,像你说的,你在本地执行那语句没问题,但在虚拟机上就出错,那说明2地的字段cz_dq的数据类型不对,建议仔细检查下 就是没明白了,在本地可以插入,在虚拟主机上就不行难道只有将cz_dq字段类型改为字符型才行吗? 肯定是sql_mode的问题,你show variables like 'sql_mode';看一下结果是不是STRICT_ALL_TABLES?如果是:set sql_mode='';再执行你的更新sql,就正常了。 sql_mode STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION 不对吗? STRICT_TRANS_TABLES也是会报这个错的,比较严格,不会自动进行类型转换。 mysql功能这么强大?请教下:通过更改模式可以将字符型的值插入到整型字段? Table Create Table house_cz CREATE TABLE `house_cz` ( `id` int(10) unsigned NOT NULL auto_increment, `cz_dq` int(3) NOT NULL, update house_cz set cz_infotype='个人',cz_dq='红花岗区' mysql> create table test(id int,i int);Query OK, 0 rows affected (0.09 sec)mysql> show variables like 'sql_mode';+---------------+---------------------+| Variable_name | Value |+---------------+---------------------+| sql_mode | STRICT_TRANS_TABLES |+---------------+---------------------+1 row in set (0.00 sec)mysql> insert into test values(1,'abc');ERROR 1366 (HY000): Incorrect integer value: 'abc' for column 'i' at row 1mysql> set sql_mode='';Query OK, 0 rows affected (0.02 sec)mysql> insert into test values(1,'abc');Query OK, 1 row affected, 1 warning (0.05 sec)mysql> select * from test;+------+------+| id | i |+------+------+| 1 | 0 |+------+------+1 row in set (0.00 sec) 可以在你建立连接时设置,当前session有效。 这是我的数据库连接代码,应该怎样写才能让session有效呢,请大哥详示,谢谢$server = "localhost";$username_conn = "root";$password_conn = "123456";$database = "test";if ( !( $conn = mysql_connect( $server, $username_conn, $password_conn ) ) ){ exit( "连接失败:".mysql_error( ) );}mysql_query( "set names 'gbk'" );if ( !mysql_select_db( $database, $conn ) ){ exit( "选择数据库失败:".mysql_error( ) );}date_default_timezone_set( "PRC" ); 你直接在mysql_query( "set names 'gbk'" ); 后面加一行mysql_query( "set sql_mode=''" ); 就行了 用navicat连接mysql数据库出现问题 tinyint数据类型问题 求mysql数据库工程师面试的题目 一个分组取每个类有限个值的问题 请教各位高手 急~~~~~~~~~~~~~~~~~~~老版本mysql数据库数据想转出到sql server,怎么办??? 表中显示的记录数和实际记录数不符 myOdbc不能连接Mysql 418的问题 请教mysql索引优化问题,百思不解,请大家帮忙 求助!!!create database 显示 not connected! 复杂的近似度计算应用(sql 算法相关) 查出上传时间最晚的 记录 并按用户分组
MySQL 中文显示乱码
character_set_client utf8
character_set_connection utf8
character_set_database latin1
character_set_filesystem binary
character_set_results utf8
character_set_server latin1
character_set_system utf8
character_sets_dir E:\Program Files\MySQL\MySQL Server 5.0\share\charsets\
这是当前联接系统参数
下面是数据库表中字段的字符集设置
Table Create Table
house_cz CREATE TABLE `house_cz` (
`id` int(10) unsigned NOT NULL auto_increment,
`cz_dq` int(3) NOT NULL,
`cz_addr` char(40) NOT NULL,
`cz_type` int(3) NOT NULL,
`cz_new` tinyint(2) NOT NULL,
`cz_subtype` char(20) NOT NULL,
`cz_hx` char(20) NOT NULL,
`cz_hx1` char(6) NOT NULL,
`cz_hx2` char(6) NOT NULL,
`cz_areas` float NOT NULL,
`cz_price` float NOT NULL,
`cz_pricetype` char(20) NOT NULL,
`cz_pay` char(8) NOT NULL,
`cz_sumfloor` tinyint(2) NOT NULL,
`cz_dofloor` tinyint(2) NOT NULL,
`cz_pointto` char(8) NOT NULL,
`cz_intime` int(4) NOT NULL,
`cz_jcss` char(40) NOT NULL,
`cz_sbqk` char(100) NOT NULL,
`cz_zbpt` char(100) NOT NULL,
`cz_zxcd` char(10) NOT NULL,
`cz_ifzj` char(10) NOT NULL,
`cz_content` varchar(600) NOT NULL,
`pic1` varchar(50) NOT NULL,
`pic2` varchar(50) NOT NULL,
`pic3` varchar(50) NOT NULL,
`pic4` varchar(50) NOT NULL,
`pic5` varchar(50) NOT NULL,
`pic6` varchar(50) NOT NULL,
`cz_lxr` char(10) NOT NULL,
`cz_sex` char(6) NOT NULL,
`cz_tel` char(20) NOT NULL,
`cz_mobile` char(30) NOT NULL,
`cz_address` char(50) NOT NULL,
`cz_mail` char(32) NOT NULL,
`cz_uid` int(10) unsigned NOT NULL,
`cz_addtime` int(10) unsigned NOT NULL,
`cz_veiw` tinyint(1) NOT NULL default '1',
`cz_infotype` char(4) NOT NULL,
`hits` int(6) NOT NULL,
`cz_hz` tinyint(2) NOT NULL,
`tjtime1` int(10) NOT NULL default '0',
`tjtime2` int(10) NOT NULL default '0',
`cz_photo` varchar(500) default NULL,
`fynumber` varchar(20) default NULL,
`ipaddress` varchar(20) default NULL,
PRIMARY KEY (`id`),
KEY `cz_dq` (`cz_dq`),
KEY `cz_type` (`cz_type`),
KEY `cz_hx` (`cz_hx`)
) ENGINE=MyISAM AUTO_INCREMENT=5 DEFAULT CHARSET=gbk 是不是字符集的问题呢,请指教.
cz_dq int(3) NO MUL NULL
update house_cz set cz_infotype='个人',cz_dq='红花岗区' ...你想把字符型赋给int型,怎么可能呢?
这里面错误已经说得很明显了,不正确的'红花岗区'整型值
结果是不是STRICT_ALL_TABLES?如果是:set sql_mode='';
再执行你的更新sql,就正常了。
sql_mode STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION 不对吗?
请教下:通过更改模式可以将字符型的值插入到整型字段?
house_cz CREATE TABLE `house_cz` (
`id` int(10) unsigned NOT NULL auto_increment,
`cz_dq` int(3) NOT NULL,
update house_cz set cz_infotype='个人',cz_dq='红花岗区'
Query OK, 0 rows affected (0.09 sec)mysql> show variables like 'sql_mode';
+---------------+---------------------+
| Variable_name | Value |
+---------------+---------------------+
| sql_mode | STRICT_TRANS_TABLES |
+---------------+---------------------+
1 row in set (0.00 sec)mysql> insert into test values(1,'abc');
ERROR 1366 (HY000): Incorrect integer value: 'abc' for column 'i' at row 1
mysql> set sql_mode='';
Query OK, 0 rows affected (0.02 sec)mysql> insert into test values(1,'abc');
Query OK, 1 row affected, 1 warning (0.05 sec)mysql> select * from test;
+------+------+
| id | i |
+------+------+
| 1 | 0 |
+------+------+
1 row in set (0.00 sec)
可以在你建立连接时设置,当前session有效。
这是我的数据库连接代码,应该怎样写才能让session有效呢,请大哥详示,谢谢$server = "localhost";
$username_conn = "root";
$password_conn = "123456";
$database = "test";
if ( !( $conn = mysql_connect( $server, $username_conn, $password_conn ) ) )
{
exit( "连接失败:".mysql_error( ) );
}
mysql_query( "set names 'gbk'" );
if ( !mysql_select_db( $database, $conn ) )
{
exit( "选择数据库失败:".mysql_error( ) );
}
date_default_timezone_set( "PRC" );