mysql 语句出错

insert into house_new_house (UserLogin,NewTitle,NewLetter,NewCity,NewArea,WownerType,NewNow,NewClass,NewFrame,NewFitment,NewAddress,NewPrice,PayMent,WownerAdress,WownerFee,WownerCompany,SellTel,SellLicence,SellAddress,NewEmpolder,NewOpenDate,NewGoDate,NewDate,QQGroup,NewVolume,NewWeb,NewGreen,NewFoor,NewTraffic,ArounSchool,ArounMark,ArounCheeper,ArounBank,ArounPost,ArounHospital,ReadMe,BuildOuterWall,BuildInsideWall,BuildLift,BuildILiftNum,BuildIDoor,BuildHall,BuildWater,BuildPower,BuildGas,BuildWarm,BuildMessage,BuildSanitation,BuildCoset,WownerArea,WownerBuild,WownerUser,WownerCarNum,WownerCarSale,WownerCarHire,WownerCycle,WownerSell,TogetherInvest,TogetherAgent,TogetherWork,TogetherExtend,TogetherBuild,TogetherSight,TogetherOther,MewImageOver,NewImageEffect,NewImagePower,NewOther,NewPowerBook,PriceStart,PricAver,PricHight)values('$UserLogin','$NewTitle','$NewLetter','$NewCity','$NewArea','$WownerType','$NewNow','$NewClass','$NewFrame','$NewFitment','$NewAddress','$NewPrice','$PayMent','$WownerAdress','$WownerFee','$WownerCompany','$SellTel','$SellLicence','$SellAddress','$NewEmpolder','$NewOpenDate','$NewGoDate','$NewDate','$QQGroup','$NewVolume','$NewWeb','$NewGreen','$NewFoor','$NewTraffic','$ArounSchool','$ArounMark','$ArounCheeper','$ArounBank','$ArounPost','$ArounHospital','$ReadMe','$BuildOuterWall','$BuildInsideWall','$BuildLift','$BuildILiftNum','$BuildIDoor','$BuildHall','$BuildWater','$BuildPower','$BuildGas','$BuildWarm','$BuildMessage','$BuildSanitation','$BuildCoset','$WownerArea','$WownerBuild','$WownerUser','$WownerCarNum','$WownerCarSale','$WownerCarHire','$WownerCycle','$WownerSell','$TogetherInvest','$TogetherAgent','$TogetherWork','$TogetherExtend','$TogetherBuild','$TogetherSight','$TogetherOther','$MewImageOver','$NewImageEffect','$NewImagePower','$NewOther','$NewPowerBook','$PriceStart','$PricAver','$PricHight')

说明这只是一个例子,在添加信息失手 失败,就是insert 失败。。。

我的mysql是标准模式的,可以正常插入,但是,服务是严格模式的,这样语句失败。。。。。

在phpmyadmin中执行sql语句 一般有这样的提示

Incorrect integer value: '$NewCity' for column 'NewCity' at row 1

Data too long for column 'HirePayDate' at row 1

Field 'TypeOK' doesn't have a default value

还有这个错误哦。。。。等

我搜索了大量的信息 应该是mysql模式设置的问题,但是,因为服务器不可能更改模式,因此,需要在表上修改。请问一般如何修改。。。。

说明:程序在本机正常,在服务器出现添加信息失败的提示。。。。

我修改了大量的默认值 但是最后还是不行。。。。

不是服务器的问题.是你的字段值有问题.
Incorrect integer value: '$NewCity' for column 'NewCity' at row 1
//字段类型不匹配,表中这个字段设置为整形,你却给了一个字符串,根据实际情况修改字段或对提交过来的值做处理.

Data too long for column 'HirePayDate' at row 1
(1)可能是'HirePayDate' 的字段长度设置的太小,而提交过来的值超过长度.
(2)也可能是字段的编码不一致的问题.
解决:
(1)加大字段长度,记住一个如果是gbk/gb2312时中文占两个字节,在mysql中设置字段长度时,注意加大.
(2)设置数据库编码,使得插入的数据编码一致.
Field 'TypeOK' doesn't have a default value
没给这个字段的值,但这个字段又设置了not null(非空).
解决:如果不是每次都会提交该字段的值.请改字段设置,允许空.或设置默认值.

Field 'TypeOK' doesn't have a default value
============
如楼上所说,建议echo 出来你的sql,再查询分析器中执行.看看错在哪里.
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-05-27
提几点建议:
1.你最好采用 "'".$UserLogin."','".$NewTitle."这种格式,把变量放在字符串引号之外,这样更安全保险一点。
2.错误提示“Incorrect integer value: '$NewCity' for column 'NewCity' at row 1”,应该你的$NewCity 不是数值类型吧,建议插入数据前,判断每个数据和数据库的数据是否兼容,数据不兼容或者为空,你可以设定个默认值。
3.对于非字符串类型数据插入时,特别是 int类型,插入时,比如:
,'$NewCity',把单引号去掉,单引号很容易产生字符串值类型。
3.你可以把那个sql语句echo出来,看看语句是否有错误,再查询分析器里面分析下。
相似回答