语法错误问题mysql_query和php


Syntax error question mysql_query and php

我在php mysql查询有麻烦查询是

INSERT INTO rfqtable (rfqnumber, prnumber, linenumber, shipmentnumber, item, desc, needbydate, uom, rfqqty, quotedqty, unitprice, amountprice, lt, substitute, remark, coc, tds, exportlicense, maker, quotedmaker, substituteinfo, validuntil, warranty, program, packingtype, attachment)VALUES('63915', '86298', '1', '1', '229-027477', 'WASHER, SEALING', 'AUG-26-2011', 'Each', '50', '0', '0', '0', '0', '', '', 'N', 'N', '', '', '', '', '0', '0', 'KFP', '', '')

mysql错误是:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'desc, needbydate, uom, rfqqty, quotedqty, unitprice, amountprice, lt, substitute' at line 1

它们都是varchar 255字段,utf-8通用

如有任何帮助,不胜感激

DESC是MySQL的保留字。如果您想使用它作为列名,您需要将它放在反引号(' ')

中。
INSERT INTO rfqtable (
  rfqnumber, prnumber, linenumber, shipmentnumber, item, `desc`,
  needbydate, uom, rfqqty, quotedqty, unitprice, amountprice, lt,
  substitute, remark, coc, tds, exportlicense, maker, quotedmaker, 
  substituteinfo, validuntil, warranty, program, packingtype, attachment
) VALUES (
  '63915', '86298', '1', '1', '229-027477', 'WASHER, SEALING',
  'AUG-26-2011', 'Each', '50', '0', '0', '0', '0', '', '', 'N',
  'N', '', '', '', '', '0', '0', 'KFP', '', '')

还有:为了您自己的利益,请使用正确的数据类型。将日期和数字存储为varchar可能是您能做的最糟糕的事情。http://dev.mysql.com/doc/refman/5.5/en/data-types.html

DESC是保留字!

DESC是一个"保留"字,是SQL的一部分。

你应该把所有的字段都用反引号括起来,比如:

INSERT INTO ' rfqtable ' (' rfqnumber ', ' prnumber ', ' linenumber ',…

try this

INSERT INTO rfqtable (rfqnumber, prnumber, linenumber, shipmentnumber, item, `desc`, needbydate, uom, rfqqty, quotedqty, unitprice, amountprice, lt, substitute, remark, coc, tds, exportlicense, maker, quotedmaker, substituteinfo, validuntil, warranty, program, packingtype, attachment)VALUES('63915', '86298', '1', '1', '229-027477', 'WASHER, SEALING', 'AUG-26-2011', 'Each', '50', '0', '0', '0', '0', '', '', 'N', 'N', '', '', '', '', '0', '0', 'KFP', '', '')

DESC被mysql保留

整个列表:

ACCESSIBLE  ADD ALL
ALTER   ANALYZE AND
AS  ASC ASENSITIVE
BEFORE  BETWEEN BIGINT
BINARY  BLOB    BOTH
BY  CALL    CASCADE
CASE    CHANGE  CHAR
CHARACTER   CHECK   COLLATE
COLUMN  CONDITION   CONSTRAINT
CONTINUE    CONVERT CREATE
CROSS   CURRENT_DATE    CURRENT_TIME
CURRENT_TIMESTAMP   CURRENT_USER    CURSOR
DATABASE    DATABASES   DAY_HOUR
DAY_MICROSECOND DAY_MINUTE  DAY_SECOND
DEC DECIMAL DECLARE
DEFAULT DELAYED DELETE
DESC    DESCRIBE    DETERMINISTIC
DISTINCT    DISTINCTROW DIV
DOUBLE  DROP    DUAL
EACH    ELSE    ELSEIF
ENCLOSED    ESCAPED EXISTS
EXIT    EXPLAIN FALSE
FETCH   FLOAT   FLOAT4
FLOAT8  FOR FORCE
FOREIGN FROM    FULLTEXT
GRANT   GROUP   HAVING
HIGH_PRIORITY   HOUR_MICROSECOND    HOUR_MINUTE
HOUR_SECOND IF  IGNORE
IN  INDEX   INFILE
INNER   INOUT   INSENSITIVE
INSERT  INT INT1
INT2    INT3    INT4
INT8    INTEGER INTERVAL
INTO    IS  ITERATE
JOIN    KEY KEYS
KILL    LEADING LEAVE
LEFT    LIKE    LIMIT
LINEAR  LINES   LOAD
LOCALTIME   LOCALTIMESTAMP  LOCK
LONG    LONGBLOB    LONGTEXT
LOOP    LOW_PRIORITY    MASTER_SSL_VERIFY_SERVER_CERT
MATCH   MAXVALUE    MEDIUMBLOB
MEDIUMINT   MEDIUMTEXT  MIDDLEINT
MINUTE_MICROSECOND  MINUTE_SECOND   MOD
MODIFIES    NATURAL NOT
NO_WRITE_TO_BINLOG  NULL    NUMERIC
ON  OPTIMIZE    OPTION
OPTIONALLY  OR  ORDER
OUT OUTER   OUTFILE
PRECISION   PRIMARY PROCEDURE
PURGE   RANGE   READ
READS   READ_WRITE  REAL
REFERENCES  REGEXP  RELEASE
RENAME  REPEAT  REPLACE
REQUIRE RESIGNAL    RESTRICT
RETURN  REVOKE  RIGHT
RLIKE   SCHEMA  SCHEMAS
SECOND_MICROSECOND  SELECT  SENSITIVE
SEPARATOR   SET SHOW
SIGNAL  SMALLINT    SPATIAL
SPECIFIC    SQL SQLEXCEPTION
SQLSTATE    SQLWARNING  SQL_BIG_RESULT
SQL_CALC_FOUND_ROWS SQL_SMALL_RESULT    SSL
STARTING    STRAIGHT_JOIN   TABLE
TERMINATED  THEN    TINYBLOB
TINYINT TINYTEXT    TO
TRAILING    TRIGGER TRUE
UNDO    UNION   UNIQUE
UNLOCK  UNSIGNED    UPDATE
USAGE   USE USING
UTC_DATE    UTC_TIME    UTC_TIMESTAMP
VALUES  VARBINARY   VARCHAR
VARCHARACTER    VARYING WHEN
WHERE   WHILE   WITH
WRITE   XOR YEAR_MONTH
ZEROFILL         

"DESC"是表示"降序"的保留字。添加回tics

"desc"