I'm having trouble with a mysql query in php the query is
我在查询的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', '', '')
And the mysql error is:
并且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
They are all varchar 255 fields, utf-8 general
它们都是varchar 255字段,utf-8一般
Any help would be greatly appreciated
任何帮助将不胜感激
5 个解决方案
#1
6
DESC
is a MySQL's reserved word. If you want to use it as column name, you need to put it in backticks (``)
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', '', '')
Also: please, for your own sake, use correct datatypes. Storing dates and numbers as VARCHARs is probably the worst thing you can do. http://dev.mysql.com/doc/refman/5.5/en/data-types.html
另外:请您使用正确的数据类型。将日期和数字存储为VARCHAR可能是您可以做的最糟糕的事情。 http://dev.mysql.com/doc/refman/5.5/en/data-types.html
#3
0
DESC
is a "reserved" word and part of SQL.
DESC是一个“保留”字,是SQL的一部分。
You should quote all your fields with backticks, like:
您应该使用反引号引用所有字段,例如:
INSERT INTO `rfqtable` (`rfqnumber`, `prnumber`, `linenumber`, …
INSERT INTO`rfqtable`(`rfqnumber`,`prnumber`,`linenumber`,...
#4
0
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 is reserved by mysql
DESC由mysql保留
whole list:
整个清单:
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
资源
#5
0
"DESC" is a reserved word for "descending" order. Add back tics to it
“DESC”是“降序”的保留字。添加背胶
`desc`
`desc`
#1
6
DESC
is a MySQL's reserved word. If you want to use it as column name, you need to put it in backticks (``)
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', '', '')
Also: please, for your own sake, use correct datatypes. Storing dates and numbers as VARCHARs is probably the worst thing you can do. http://dev.mysql.com/doc/refman/5.5/en/data-types.html
另外:请您使用正确的数据类型。将日期和数字存储为VARCHAR可能是您可以做的最糟糕的事情。 http://dev.mysql.com/doc/refman/5.5/en/data-types.html
#2
#3
0
DESC
is a "reserved" word and part of SQL.
DESC是一个“保留”字,是SQL的一部分。
You should quote all your fields with backticks, like:
您应该使用反引号引用所有字段,例如:
INSERT INTO `rfqtable` (`rfqnumber`, `prnumber`, `linenumber`, …
INSERT INTO`rfqtable`(`rfqnumber`,`prnumber`,`linenumber`,...
#4
0
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 is reserved by mysql
DESC由mysql保留
whole list:
整个清单:
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
资源
#5
0
"DESC" is a reserved word for "descending" order. Add back tics to it
“DESC”是“降序”的保留字。添加背胶
`desc`
`desc`