mysql5.0 由于虚拟主机的限制
插入字段如果是整形数据比如说 wr_hit int(10),那么如果wr_hit没有指定值的话,就会报错
也就是说 insert wr_table wr_hit = ''这会报错,insert wr_table wr_hit = '0' 才算正确
但是表格中有很多这样的字段,程序的开始阶段这些字段是没有经过处理的,所以他们的默认值都是'',如果要吧所有的这些字段在加上一句判断 if(!$wr_hit) $wr_hit = 0;这会是一个很大的工作量。有没有简单的方法避免mysql报错呢由于是虚拟主机,修改服务器参数的方法显然是不行了
插入字段如果是整形数据比如说 wr_hit int(10),那么如果wr_hit没有指定值的话,就会报错
也就是说 insert wr_table wr_hit = ''这会报错,insert wr_table wr_hit = '0' 才算正确
但是表格中有很多这样的字段,程序的开始阶段这些字段是没有经过处理的,所以他们的默认值都是'',如果要吧所有的这些字段在加上一句判断 if(!$wr_hit) $wr_hit = 0;这会是一个很大的工作量。有没有简单的方法避免mysql报错呢由于是虚拟主机,修改服务器参数的方法显然是不行了
[/align]
[/align]
程序执行中如果有新值会重新赋给$wr_hit;
不知道你的程序这样执行是否可以
建议之前在PHP里判断。
不要交给MYSQL 来做。
if ($wr_hit == '') then
...
else
...
$query = 'insert wr_table wr_hit = '.$wr_hit.',wr_1 = '.$wr_1.' ... where wr_id = 10';
在程序里,用javascript 写个js来判断啊.
不用交给mysql来做啊.
比如说一次输入 只需要输入名字和性别 还有个人介绍或者 其他什么的不是强制要输入的内容那么如果客户没有填写就会出现空值.
有一个整形的字段 程序中没有赋值就会出现
Incorrect integer value 错误有没有好办法避免这种错误出现 实际情况是程序中这种字段会有很多比如说 程序sql语句如下
$sql = "
bo_use_sideview = '$bo_use_sideview',
bo_use_file_content = '$bo_use_file_content',
bo_use_secret = '$bo_use_secret',
bo_use_dhtml_editor = '$bo_use_dhtml_editor',
bo_use_rss_view = '$bo_use_rss_view',
bo_use_comment = '$bo_use_comment',
bo_use_good = '$bo_use_good',
bo_use_nogood = '$bo_use_nogood',
bo_use_name = '$bo_use_name',
bo_use_signature = '$bo_use_signature',
bo_use_ip_view = '$bo_use_ip_view',
bo_use_trackback = '$bo_use_trackback',
bo_use_list_view = '$bo_use_list_view',
bo_use_list_content = '$bo_use_list_content',
"
以上所有的字段在数据库中都是 int(1)类型的
而这些设定在页面上表现为checkbox <input type=checkbox name = bo_user_list_view value=1>这样如果某些设定用户没有选择在程序中就会出空值 (bo_use_list_view = ''),从而出现
incorrect integer value 错误我所知道的解决办法就是 if来判断,如果为空的话 个他赋值为0这样就不会出错
但是如果要用判断语句那样改起来,有这么多的if 很麻烦哦
有么有别的好办法,可以一次全部解决这种问题另外本地不会出现这样的问题,那肯定是由于mysql哪个地方做了限制所以不允许这种情况出现,或者告诉我这个限定在哪里去掉也好
这样说会不会清楚一点