值未插入

时间:2013-08-07 08:34:39

标签: php mysql sql insert

<?php
  $ll=mysql_query("CREATE TABLE IF NOT EXISTS p (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `title` varchar(255) NOT NULL DEFAULT '',
  `colum` varchar(255) NOT NULL DEFAULT '',
  `ord` varchar(255) NOT NULL DEFAULT '',
  `tex` varchar(255) NOT NULL DEFAULT '',
  `search` varchar(255) NOT NULL DEFAULT '',
  `count` varchar(255) NOT NULL DEFAULT '',
  `order` varchar(255) NOT NULL DEFAULT '',
  PRIMARY KEY (`id`)
)ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;INSERT INTO p (title,colum,ord,tex,search,count,order) VALUES ('$a','$b','$c','$d','$f','$h','$g');") or die(mysql_error())  ;
if($ll){
 echo  "insert AND CREATE ";}
 else {echo "fail"; }
?>

我使用的是php语言。在此页面中,如果未创建表,则首先创建它,然后将值插入列

创建表后,我将值插入表中,但它显示插入查询中的错误

我收到此错误 - 您的SQL语法出错;查看与MySQL服务器版本对应的手册,以便在'INSERT INTO p VALUES('count','name','asc','1','search','count','order'附近使用正确的语法) )'在第11行

我做错了什么

4 个答案:

答案 0 :(得分:1)

我绝对不确定这是否是问题,但你在INSERT语句中传递了7个值,而你的表定义有8个字段。

我认为你这样做是因为'id'字段是自动增量的。但是,如果是这种情况,则应指定哪些列与insert语句中的值相对应:

INSERT INTO $p (title, column, ord, ...) VALUES ('$a','$b','$c','$d','$f','$h','$g')

答案 1 :(得分:1)

这是一个将这两个陈述分开的干运行 - 应该有效:

<?php
$querys[]="CREATE TABLE IF NOT EXISTS $p (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `title` varchar(255) NOT NULL DEFAULT '',
      `colum` varchar(255) NOT NULL DEFAULT '',
      `ord` varchar(255) NOT NULL DEFAULT '',
      `tex` varchar(255) NOT NULL DEFAULT '',
      `search` varchar(255) NOT NULL DEFAULT '',
      `count` varchar(255) NOT NULL DEFAULT '',
      `order` varchar(255) NOT NULL DEFAULT '',
      PRIMARY KEY (`id`)
    )ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=1";

$querys[]="INSERT INTO $p VALUES (null,'$a','{$b}','{$c}','{$d}','{$f}','{$h}','{$g}')";


foreach($querys as $sql) {
    $ll = mysql_query($sql);
    $error=mysql_error();
    if($error!='') {
        print $sql."\n";
        die($error);
    }
}
?>

答案 2 :(得分:0)

INSERT INTO p (title,colum,ord,tex,search,count,order) VALUES ('$a','$b','$c','$d','$f','$h','$g')

应该是

INSERT INTO p (`title`,`colum`,`ord`,`tex`,`search`,`count`,`order`) VALUES ('$a','$b','$c','$d','$f','$h','$g')

因此顺序是一个mysql关键字

答案 3 :(得分:-3)

你已经用“双引号结束插入语句但未开始你可以写

INSERT INTO p (title,colum,ord,tex,search,count,order) VALUES ('$a','$b','$c','$d','$f','$h','$g');

或者你可以写

("INSERT INTO p (title,colum,ord,tex,search,count,order) VALUES ('$a','$b','$c','$d','$f','$h','$g')");

在您的代码中尝试

注意 - 请不要在相同的代码中使用mysqli和mysql,而是可以使用mysqli PDO