-1
<?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

4 回答 4

1

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

我假设您这样做是因为“id”字段是自动增量的。但是,如果是这种情况,您应该在插入语句中指定哪些列与您的值相对应:

INSERT INTO $p (title, column, ord, ...) VALUES ('$a','$b','$c','$d','$f','$h','$g')
于 2013-08-07T08:39:50.807 回答
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);
    }
}
?>
于 2013-08-07T08:53:44.423 回答
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')

因此order是一个 mysql 关键字

于 2013-08-07T08:59:22.993 回答
-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

于 2013-08-07T09:12:29.857 回答