2011-08-03 12 views
2

は、私はPHP でmysqlのクエリでトラブルを抱えているクエリが構文エラー質問するmysql_queryとPHP

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一般

ご協力いただければ幸いです。

答えて

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

0

「DESC」は「降順」の予約語です。それ

に目盛りをバック追加 `

0

DESCは "予約" 単語とSQLの一部であるdesc`。

あなたが好き、バッククォートですべてのフィールドを引用する必要があります: `rfqtable`(` rfqnumber`、 `prnumber`、` linenumber` INTO

INSERT、...

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によって

リスト全体を予約されています3210

source