语法错误查询INSERT INTO php


Syntax error query INSERT INTO php

我尝试了mysql_query(),但收到一个错误,说"您的SQL语法有错误;请查看与您的mysql服务器版本相对应的手册,了解附近要使用的正确语法……问题是查询字符串

 $val=$_POST["valori"];
 $t=explode(",",$val);
 $id="";
 $nomi="";
 $i=0;
   $turno=$_POST["turno"];
  $div=$_POST["prova"];

   $username = "root";
    $password = "";
   $hostname = "localhost"; 
    $dbname = "culp";
  $dbhandle=mysql_connect($hostname, $username, $password);
   mysql_select_db($dbname) or die("Unable to select database");
  while(count($t)!=$i)
{
             $id=$id.$t[$i+1].",";
             $nomi=$nomi.$t[$i].",";
             $i=$i+2;
}

 $query1="INSERT INTO foglio (turno,paper,".$id."data)VALUES('$turno','$div','".$nomi."'CURDATE());";
    echo $query1;
    mysql_query($query1)or trigger_error(mysql_error()." in ".$query1); 

我假设您在查询中插入了四个值。所以你应该写:

$query1="INSERT INTO foglio (turno,paper,$id,data)VALUES('$turno','$div','$nomi',CURDATE());";

您正在用双引号包装查询,这样就不需要单引号了。查询中第三项和第四项之间缺少逗号

此外,我认为您这样做只是为了一个个人项目,因为您使用的是一个不推荐使用的api(mysql_*),该api将在下一个php版本中删除(因此您的代码将不再工作)。此外,您的代码对sql注入是开放的,您应该转到准备好的语句