下面建表的语句哪错了,输出结果总是“建表时出错”,代码如下 20

<?php$con=mysql_connect("localhost","root","198932");//建立连接并赋值给变量if($con)//如果返回连接标识{m... <?php
$con=mysql_connect("localhost","root","198932"); //建立连接并赋值给变量
if($con) //如果返回连接标识
{
mysql_select_db("test",$con); //选择test操作库
mysql_query("DROP TABLE temp");
$sql="CREATE TABLE temp
(
id int(5) not null auto_increment primary key,
name char(10) not null default '',
sex char(2) not null default '男',
age int(3) not null default 0,
work char(10) not null default '',
city char(10) not null default '',
other char(50) not null default ''
)";
$do=mysql_query($sql,$con); //执行建表SQL语句
if($do) //如果成功执行
{
echo "成功在test数据库中创建表!"; //输出内容
}
else echo "建表时出现错误!";
}
else //如果返回False
{
echo "连接到服务器时出现错误!"; //输出内容
}
?>
展开
 我来答
杯具滿茶几
2013-09-03 · TA获得超过438个赞
知道答主
回答量:73
采纳率:0%
帮助的人:95.9万
展开全部

如果出错了最好在执行语句的下边用:

$do=mysql_query($sql,$con);     //执行建表SQL语句
echo mysql_error();             //输出当前的错误信息

你这个的错误提示是:

    Invalid default value for 'sex'

就是sex 的默认值有问题:

    sex char(2) not null default '男',


你这里设置的字段长度为2,有些欠考虑了。

中文字符集常用的有俩个一个是UTF-8 一个是GBK ;

如果你使用的是GBK字符集的数据库没问题,但如果是UTF-8的就行不通了,他的默认长度是3个字节,你将sex char(2) 改成 sex char(3)就可以了,或者去设置下你的数据库字符集,给成GBK的也成。

//mysql_query(set names gbk); 将字符集设置为GBK
//mysql_query(set names utf8); 将字符集设置为UTF-8

性别常用tinyint 类型,然后用 0,1识别。 

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lvjiaqijiaqi
2013-09-03 · 超过23用户采纳过TA的回答
知道答主
回答量:116
采纳率:0%
帮助的人:74.8万
展开全部
楼主看网页页面用的什么编码···GBK的话先set names gbk ; 如果是UTF8 sex char(2) 应该致为3
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式