2016-04-18 6 views
1

bashコマンドを使用してdbサーバーで更新クエリを実行しようとしています。 私は(文字列としてソートされた)IPフィールドを更新する必要があるが、私は構文エラーを取得しています...私はBASHスクリプトを使用してMYSQLテーブルを更新すると、構文エラーが発生します

エラーとしてERROR 1064(42000を取得しています

ssh [email protected] "/usr/local/mysql/bin/mysql -D SMARTPARK -u parkuser -ppass -e 'update client SET online=0 where client_ip='192.168.42.11''" 

)at line 1:SQL構文にエラーがあります。あなたのMySQLサーバのバージョンに対応するマニュアルを調べて、正しい構文を1行目の '.42.11'の近くで使用してください。

これは間違いですか?

+2

引用符と二重引用符の間に違いがあります。クライアントの更新を使用してください。client_ip = '192.168.42.11' " –

+0

実際にあなたはあなたのスクリプトから逃げないように' ''と '' 'を入れ替える必要があります。 –

答えて

1

"文字をエスケープして、DBに送信している文字列から逃げないようにしてください。

つまり、あなたが実行しているbashのファイルに次のように配置しよう:

ssh [email protected] "/usr/local/mysql/bin/mysql -D SMARTPARK -u parkuser -ppass -e \"update client SET online=0 where client_ip='192.168.42.11'\"" 
+0

大丈夫です。より多くのエラーが表示されますが、ヘルプはすべてプロンプトが表示され、クエリが作成されていないため-hコマンドを実行したように見えます... – besmart

+0

@besmart最後の編集の提案でもう一度やり直せますか? –

+0

最後の編集私に構文エラーを返します。 – besmart

関連する問題