2012-05-01 17 views
0

我試圖用<br/>標籤替換數據庫中的換行符,並使用Perl編寫的以下mySQL查詢字符串。mySQL在Perl中的查詢字符串似乎並不處理' n'

my $queryString = "Select REPLACE(r.form_text,'\n','<br /> '), ... FROM myTable r;" 

出於某種原因,\n是Perl中視爲一個換行符從似乎並沒有與<br/>來取代它。下面是我得到了什麼,當我試圖打印$queryString

REPLACE(r.form_text,' 

','< br /> ') 

我試圖用\\n\\\n,它也不能工作。如果這是一個重複的問題,我很抱歉。請讓我知道,如果我在這裏失去了一些東西。

+0

http://stackoverflow.com/questions/2902888/adding-a-line-break-in-mysql-insert-into-text – ethrbunny

回答

0

當然,你會得到一個換行符。當你使用雙引號來引用一個字符串時,它裏面的任何東西都會被插入,並且\n將變成一個字面換行符。如果你想要一個文字\n,你需要防止插值。通常,你會使用單引號,但這是不切實際的,因爲你已經在字符串中有這些。相反,請使用q()功能。

my $queryString = 
    q|Select REPLACE(r.form_text,'\n','<br /> '), ... FROM myTable r;|; 

注意,您可以使用各種各樣的分隔符爲q(),在這種情況下,我用管|。如果你嘗試打印這個字符串,它應該有一個文字\n。文檔here

+0

另一方面,即使使用文字,查詢仍應該按預期工作換行... – eggyal

+0

非常感謝@TLP。這是我今天學到的新東西。但它會打印爲Select REPLACE(r.form_text,'\\ n','
')FROM myTable r;不知道我在這裏錯過了什麼。 – script3man

+0

我都沒有。當我嘗試它時,我得到了'\ n'。 – TLP