-1

新しい行を含むデータをテキスト列に挿入する必要があります。通常の挿入を行う... VALUES(E'Here comes a \\n new line)場合、クエリを実行すると次のようになります。

Here Comes a
new line

ただし、次のような準備済みステートメントを使用する場合:

my $sth = $dbh->prepare("INSERT INTO foo_table (foo_id, foo_bar_id, foo_text) VALUES (?, ?, ?)");
my @data = (1, 9999, "E'Here comes a \\n new line'");
$sth->execute(@data);

挿入されるデータは文字通りです。文字のエスケープが問題であるかどうかを確認E'Here comes a \n new line'するために、挿入する値をさまざまにポイ捨てしようとしまし\たが、問題がある場合は、まだ正しい組み合わせを見つけていません。ご協力いただきありがとうございます。

EDIT2:\準備されたステートメントを使用する場合、1つだけ必要であることがわかりました。どうやら、より複雑なエスケープ シーケンスをすべて試したときに、最も簡単な解決策を見落としていたようです。

編集:以下の回答で言及されているエスケープでは、望ましい結果が得られません。Here comes a \n new lineクエリされていない場合に生成されます

Here comes a
new line

E'...'構文を使用するときのように

4

2 に答える 2

2

値を渡す必要があるだけです。エスケープはドライバーに任せてください。

于 2013-08-23T14:21:37.853 に答える