foreach循环中mysql语法错误

标签 mysql

我运行该页面并出现此错误。我仍然无法找出问题出在哪里:

错误:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,了解在第 2 行的 'right,createtime) VALUES ('test10', 1, 1, now())' 附近使用的正确语法

foreach($array as $value){

    //insert record
$sql2 = "INSERT INTO projectright
        (generalusername,projectid,right,createtime)
        VALUES
        ('$_POST[username]',
        ".$value.",
        1,
        now())";    

        if (!mysql_query($sql2,$con))

  {

  die('Error: ' . mysql_error());

  }
}

最佳答案

right是保留关键字

你应该用这样的反引号来转义

   INSERT INTO projectright
    (generalusername,projectid,`right`,createtime)
    .....
    .....

看看reserved keywords按列创建/播放时,并通过反引号转义它们。

试试这个:

  foreach($array as $value){


 $sql2 = "INSERT INTO projectright
    (generalusername,projectid,`right`,createtime)
    VALUES
    (".$_POST['username'].",
    ".$value.",
    1,
    now())";    

    if (!mysql_query($sql2,$con))

  {

  die('Error: ' . mysql_error());

  }
 }
  • 正如草莓所说:最好不要使用保留关键字。

关于foreach循环中mysql语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21849700/

相关文章:

java - MySql 连接被拒绝 - Java

php - 如何使用php在mysql数据库中添加照片?

mysql - 向具有外键约束的表添加行 [MySQL]

mysql - SQL - 找到与提供的对最接近的一对数字

PHP 行结果不重复

mysql - phpmyadmin mysql 将某列中的 0 更改为 1

mysql - 嵌套 SQL 查询

php - 从同一个表中选择不同的结果

mysql - 需要有关将数据从 Mysql 导入到 HDFS 的帮助

mysql - Rails db:seed 出现 ActiveRecord::RecordInvalid 错误:验证失败:类别必须存在