在Mysql中保存换行符

时间:2012-09-07 05:16:17

标签: php mysql newline

我刚刚发现我保存的所有数据都没有任何新行。

我尝试在谷歌搜索解决方案,但到目前为止还没有运气。 我发现 nl2br()可以为<br/>交换\ n但它不起作用 当我从数据库中取出数据并将其输出时,我就这样做了。

现在文本区域中的文本被保存并输出如下:

eofusethemonitorisalwaysused.AUSBportallowsuserstoback-upshowsthathavebeenrecordedontheJesterTLXtra.AUSBkeyboardcanalsobeconnectedforfastentryofnamesandnumbers.ShowfilesarecompatiblewiththeJesterMLdesks.ADMX-inportallowstheJesterTLXtratobeusedasaback-upconsolef ...

我对preg_replace也不是很好,所以我也搞砸了。

如何使用换行符和中断将数据保存到mysql中?

preg_replace()我正在用于卫生:

$pattern = "/[^a-zA-Z0-9-.@]/";

主要文本:

                                <LABEL CLASS="NORMAL_LABEL" FOR="P_DESC_EN">DESCRIPTION-EN</LABEL>
                            <TEXTAREA ID="P_DESC_EN" NAME="P_DESC_EN" COL="15" ROWS="10"></TEXTAREA>

插入文件:

    <?php
    $long_desc_en = ($_POST['P_DESC_EN']);
    $pattern = "/[^a-zA-Z0-9-.@]/";
        $clean_long_desc_en = preg_replace($pattern, " ", $long_desc_en);
        $result = mysql_query("INSERT INTO main_table 
        (alpha_p_long_desc_en) VALUES 
        ('$clean_long_desc_en')"); 
        if(!$result)
        {
        echo "Error! ".mysql_error();
        }
?>

基本上就是

1 个答案:

答案 0 :(得分:1)

有几个错误。

  1. 您的preg替换说删除任何不在该范围内的内容。包括换行符。
  2. 你没有逃避数据流入MySQL。最好使用PDO或mysqli函数,但至少要使用mysql_real_escape_string()来转义变量。
  3. <?php 
    
    $long_desc_en = ($_POST['P_DESC_EN']); 
    $pattern = "/[^a-zA-Z0-9-.@\n]/"; 
    $clean_long_desc_en = mysql_real_escape_string(preg_replace($pattern, " ", $long_desc_en)); 
    $result = mysql_query("INSERT INTO main_table (alpha_p_long_desc_en)
                             VALUES ('$clean_long_desc_en')");  
    if(!$result) {
        echo "Error! ".mysql_error(); 
    } 
    
    ?> 
    

    (但请查看PDO;下面是一个很好的例子,只需添加错误处理。

    $clean_long_desc_en = preg_replace($pattern, " ", $long_desc_en); 
    $sth = $dbh->prepare("INSERT INTO main_table (alpha_p_long_desc_en)
                             VALUES (:clean_long_desc_en)");  
    $sth->bindParam(':clean_long_desc_en', $clean_long_desc_en);
    $sth->execute();