首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP插入mysql似乎无法获得换行符。我在html中显示行中断使用。$var1。PHP_EOL。在数据中插入\r\n

问PHP插入mysql似乎无法获得换行符。我在html中显示行中断使用。$var1。PHP_EOL。在数据中插入\r\n
EN

Stack Overflow用户
提问于 2021-08-20 14:21:15
回答 1查看 153关注 0票数 0

插入mysql描述表时,我似乎无法将4行数据作为4行单独显示。我得到了

代码语言:javascript
复制
AITS BARCODE: 80040602970001265369      MFG PN: 533-0017      MFG SN: C166089      QWERTY Keyboard ASSY, USB BACKLIT 

而不是断线。如果我使用\r\n,那么这将直接插入到数据之间(删除空格,用\r\n替换)。

我创建了一个测试表,并能够使用

代码语言:javascript
复制
$sql = "INSERT INTO test (DESCR) VALUES (CONCAT_WS(CHAR(10 using utf8), '$mfgpn', '$mfgsn', '$descr'))";

但是,当我试图对我的表做同样的操作时,它在php错误日志中给出了一个“使用使用”错误。

我使用以下方法显示4行

代码语言:javascript
复制
<?php echo 'MFG PN: '. $mfgpn . '&#13;&#10;' . "MFG SN: " . $mfgsn . '&#13;&#10;'     . $descr; ?>

分隔符不像\r\n那样放进PHP_EOL。

怎样才能正确地接受我的数据并将4个变量作为4行插入到我的表中?我把我的脑子都打了出来,因为这个对我来说是新的。

以下是HTML演示:

代码语言:javascript
复制
AITS BARCODE: 80040602970001265368
MFG PN: 130211
MFG SN: ST4315041285
Sensor Processor Card Module, (Sunhillo/Longport)

​

​

以下是数据库结果:

代码语言:javascript
复制
AITS BARCODE: 80040602970001265369      MFG PN: 533-0017      MFG SN: C166089      QWERTY Keyboard ASSY, USB BACKLIT  

(没有换行符,只有空格)。请注意。html换行的PHP_EOL使\r\n在双引号时插入到数据库中。注意,html区域是一个文本区域,如果这很重要的话。记录不匹配,但它是关于表示,而不是数据本身(数据插入很好,但我希望它插入与网页上看到的完全一样)。

EN

回答 1

Stack Overflow用户

发布于 2021-08-27 14:11:42

在插入数据库时,我使用php_eol作为换行符。当将其拉回时,您需要执行一个str_replace来将数据库中隐藏的断点转换为要将其带回的文本区域中的php_eol。

$newdescr = (str_replace('<br />', PHP_EOL, $mydescr));

我使用php_eol时遇到的问题是如果我使用

$mysqli -> real_escape_string(trim( $_POST['item_description']));

它将将\r\n插入数据库。所以我不得不用

(trim( $_POST['item_description']));

然后我在数据库里找到了真正的突破口。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68863796

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档