向mysql里插入不了数据?

向mysql里插入不了数据?

mysql的库结构是:
create table student
(
id int unsigned not null auto_increment primary key,
name char(10) not null,
email char(30) not null,
qq_msn char(30) not null,
sj char(15),
home char(15)
);

通过register.htm来提交数据,再调用register.php插入数据
register.php内容如下:
<?php
$name=$_POST['name'];
$email=$_POST['email'];
$qq_msn=$_POST['qq_msn'];
$sj=$_POST['sj'];
$home=$_POST['home'];


$db = new mysqli('localhost','root','test','register');

if (mysqli_connect_errno())
{
  printf("Can't connect to MySQL Server. Errorcode: %s\n", mysqli_connect_error());
  exit;

$sql = "INSERT INTO student (id,name,email,qq_msn,sj,home) VALUES('null','$name','$email','$qq_msn','$sj','$home')";

$db->query($sql);
}
?>

执行完了以后,什么提示都没有,库里也没有数据?请给我指点一下。

id为主键时插入是null,null不是字符串.不要加引号.要不就干脆null也不要.
$sql = "INSERT INTO student (name,email,qq_msn,sj,home) VALUES('$name','$email','$qq_msn','$sj','$home')";
另外我觉得你建表的时候最好指明它的编码.
你 echo 一下 $sql ;然后在 phpmyadmin 的sql上执行一下.
如履薄冰

引用:
原帖由 我不是鱼 于 2007-5-6 10:00 发表
id为主键时插入是null,null不是字符串.不要加引号.要不就干脆null也不要.
$sql = "INSERT INTO student (name,email,qq_msn,sj,home) VALUES('$name','$email','$qq_msn','$sj','$home')";
另外我觉得你建表的 ...
刚想问一下呢,怎么指定编号,插入的汉字,是乱码。

create table student
(
id int unsigned not null auto_increment primary key,
name char(10) not null,
email char(30) not null,
qq_msn char(30) not null,
sj char(15),
home char(15)
) ENGINE=MyISAM DEFAULT CHARSET=gbk;
毕业了。。。

自型不要插入

改成这样就行
$sql = "INSERT INTO student (name,email,qq_msn,sj,home) VALUES('$name','$email','$qq_msn','$sj','$home')";