私はnode.jsでアプリを作成しています。高速フレームワークを使用し、postgresqlをデータベースとして使用しています。
データベースにいくつかの値を挿入する必要があり、その中には引用符が付いているものがあります。例:トニーのシーフード レストラン。このような値を挿入することはできません。
私は試した
name.replace('\'', '\\\'');
そしてまた
name.replace("'", "\'");
しかし、成功しません。
問題は、postgresql サーバーがクエリを実行する前にフォーマットすることです。私のコードでクエリが次のようになっている場合、
insert into venues values (nextval('venue_venueid_seq'),'"+name+"','"+api+"','"+location+"','"+latitude+"','"+longitude+"','"+category+"','"+category_generalized+"')
次に、postgresql は次のようにフォーマットします (client.query オブジェクトを出力して見つけました)
insert into venues values (nextval(\'venue_venueid_seq\'),\'Tony\'s Seafood Restaurant\',\'Google Places\',\'18863 California 1, Marshall\',\'38.146777\',\'-122.882987\',\'restaurant,food,establishment\',\'Eatery,Eatery,establishment\')
postgresql は既に文字列の開始引用符と終了引用符の前にスラッシュを配置しているため、文字列の途中にプログラムで挿入したエスケープ スラッシュが機能していません。
このような値を挿入するにはどうすればよいですか? 助けてください。