无法使用mysql_fetch_array获取多行文本

时间:2015-09-30 22:02:55

标签: php mysql

我无法将TEXT值作为多行:

PHP:

$mysql_conn = mysql_connect("host", "username", "password");
mysql_select_db("database", $mysql_conn);
$my_query = mysql_query("SELECT a, b FROM c WHERE a='example'", $mysql_conn);
$mysql_array = mysql_fetch_array($my_query);

HTML& PHP:

<p><?php echo $mysql_array["b"]; ?></p>

MySQL表格结构c

a = VARCHAR (100) ...
b = TEXT ...

c(仅包含1行):

a(第1行)的值:
MYTEXT

b(第1行)的值:
我的第一行
我的第二行
我的第3行 我的第四行

b是TEXT(无varchar),因此b支持多行。

当我检索b时,多行自动在空间中转换:

我的$mysql_array["b"]输出:

`My 1st line My 2nd line My 3rd line My 4th line`

2 个答案:

答案 0 :(得分:0)

使用nl2br将数据中的换行符更改为HTML <br>标记。

<p><?php echo nl2br($mysql_array["b"]); ?></p>

或者您可以使用<pre>元素来保留所有原始格式。

<p><pre><?php echo $mysql_array["b"]; ?></pre></p>

答案 1 :(得分:0)

你应该用以下方法解决这个问题:

echo nl2br($result[msg]);

浏览器无法将\r\n识别为新行,因此您必须将它们转换为<br>

nl2br function