语法错误问题mysql_query和php

时间:2011-08-03 21:04:24

标签: php mysql database syntax

我在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 general

非常感谢任何帮助

5 个答案:

答案 0 :(得分:6)

DESCMySQL's reserved word。如果要将其用作列名,则需要将其放在反引号(``)

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

答案 1 :(得分:0)

DESC是reserved word

答案 2 :(得分:0)

“DESC”是“降序”的保留字。添加抽搐

`desc`

答案 3 :(得分:0)

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

您应该使用反引号引用所有字段,例如:

INSERT INTO`rfqtable`(`rfqnumber`,`prnumber`,`linenumber`,...

答案 4 :(得分:0)

试试这个

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         

source