2012-03-31 9 views
0

なぜこの単純なクエリが機能しないのですか。私はmysqlバージョンをアップグレードする前にそれがOKだったことを知っています。私が行った新しいバージョンにいくつかの構文の変更があることを知っています。これは単純な照会ではなく、機能していない照会です。アップグレード後にエラーを返すMySQLクエリが

SELECT * FROM ship WHERE sensitive='Y' and entry_date between $startdate and $enddate 

私を助けてください。

EDIT:のMySQL5するmysql4とエラーからのアップグレード

'の構文エラー'

+0

エラーは何ですか? – surfen

+0

あなたは何がエラーで、何が古くて新しいmysqlバージョンであるべきかを述べるべきです。 –

+0

更新された質問を参照してください –

答えて

2

である私はあなたが5にmysqlの4からアップグレードだと思います。 sensitiveはmysql5の新しいreserved keywordです。照会の際にバッククォート( `)で囲む必要があります。 Mysql 5で予約語を使用できるようにするのはクエリですが、バッククォートです。

試してみてください。

SELECT * FROM ship WHERE `sensitive`='Y' and entry_date between $startdate and $enddate 
0

あなたは '$開始日' における "空間" の文字を持っています。それが一つの理由かもしれない。単一引用符で、彼らはタイムスタンプされていない場合

SELECT * FROM ship WHERE `sensitive`='Y' and entry_date between $startdate and $enddate 

が、ISO形式の日付が、それら:だから、あなたの$ STARTDATEと$ ENDDATEは、タイムスタンプがある場合。

+0

これは間違っていましたが、実際のクエリではn個のスペースがあります。とにかくそれを指摘してくれてありがとう –

関連する問題