刚刚接触PHP,照书本写的例子,这是代码:<?php
$con=mysql_connect("localhost","root","mysql"); //建立连接并赋值给变量
if($con) //如果返回连接标识
{
mysql_select_db("test"); //选择test操作库
$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 ''
)";
$result=mysql_query($sql); //执行建表SQL语句
if($result) //如果成功执行
{
echo "成功在test数据库中创建表!"; //输出内容
}
else echo "建表时出现错误!".mysql_error();

}
else //如果返回False
{
echo "连接到服务器时出现错误!"; //输出内容
}
?>运行错误是:建表时出现错误!Invalid default value for 'sex'。
我的mysql字符集是:gbk。网上查了很多,没成功,所以发帖求解。该怎么修改代码呢,有想法的都给个提示吧,先谢了!

解决方案 »

  1.   

    $con=mysql_connect("localhost","root","mysql");   
    mysql_query("set names gbk");
    ................在运行试试
      

  2.   

    将php文件另存为gbk编码后再试
      

  3.   

    我手动建了表,然后做了个简单的注册,能注册成功。然后又回过头用原来的代码建表,加了mysql_query("set names gbk");竟然成功了,呵呵真的奇怪了,百度、google以上午,这方法也试了都没成功,在这一发帖,嘿。。成功了,怪!应该是你带来的幸运,谢了!分就给你了吧。
      

  4.   

    提到这个编码哈,我上午也弄了,没弄成,因为另存为的编码选项中没gbk呀?你是怎么弄的?
      

  5.   

    php文件编码要和mysql数据库的编码一致,还有mysql数据库服务器的编码也要一致。。