2011-11-09 19 views
0

に関連する構文エラー私は、次の変数に構文エラーに問題が生じています:PHP/MYSQL - としてPHP変数を介してmysqlのクエリに

$uploadQuery = " 
LOAD DATA LOCAL INFILE '".$docRoot."/../../includes/dbUploads/".$fileToUpload."' 
INTO TABLE `promotions` 
FIELDS TERMINATED BY ',' 
ENCLOSED BY '"' 
ESCAPED BY '\\' 
LINES TERMINATED BY '\r\n' 
"; 

私はそれがのエスケープを行うのですか何かを持っていることを知っていますLOAD DATA ...行に'文字が含まれています。しかし、正確に何が問題になっているのか、またはこのクエリを正しい方法で言い直す方法については、私は困惑しています。

だから、私の質問はこれです:

それに関連する構文エラーがないようにとどのように私は、正しい方法で述べた変数を言い替えるん。

誰かがこれに関する提案や入力をお持ちの場合は、非常に感謝しています。

ありがとうございました!エスケープ文字がありません

+0

あなたのエラーは何ですか?また、PHPからPHPを実行する代わりに$ uploadQueryをエコーし​​てから手動で実行し、修正方法を確認しましたか? – bpgergo

答えて

3

は、これは正しい文字列です:

$uploadQuery = " 
LOAD DATA LOCAL INFILE '".$docRoot."/../../includes/dbUploads/".$fileToUpload."' 
INTO TABLE `promotions` 
FIELDS TERMINATED BY ',' 
ENCLOSED BY '\"' 
ESCAPED BY '\\' 
LINES TERMINATED BY '\\r\\n' 
"; 

第5行に余分な\に注意してください。文字列ターミネータとして"を扱っていました。また別の問題(構文エラーを引き起こさない)は7行目ですが、バックスラッシュをエスケープする必要があります。

P.S.マークアップアナライザはそれをピックアップしました:P

編集:これは、PHPが解析した後にESCAPED BY '\\'に減少するので、おそらくまた行7をESCAPED BY '\\\\'に変更する必要があります。

+0

ありがとう!私は結局私が "知っていない"と思う...私の問題の根本は:) –

+1

ところで、二重引用符 '' 'を使用している場合、変数を文字列に連結する必要はありません。 'echo $ foo ''と言うと、 'echo $ foo'と同じように動作します。変数を' {'と'} 'で囲む必要があることに注意してください – imkingdavid

+1

@BlackberryFan私の編集を参照してください:私は何かを逃しました – jli

関連する問題