插入mysql描述表时,我似乎无法将4行数据作为4行单独显示。我得到了
AITS BARCODE: 80040602970001265369 MFG PN: 533-0017 MFG SN: C166089 QWERTY Keyboard ASSY, USB BACKLIT 而不是断线。如果我使用\r\n,那么这将直接插入到数据之间(删除空格,用\r\n替换)。
我创建了一个测试表,并能够使用
$sql = "INSERT INTO test (DESCR) VALUES (CONCAT_WS(CHAR(10 using utf8), '$mfgpn', '$mfgsn', '$descr'))";但是,当我试图对我的表做同样的操作时,它在php错误日志中给出了一个“使用使用”错误。
我使用以下方法显示4行
<?php echo 'MFG PN: '. $mfgpn . ' ' . "MFG SN: " . $mfgsn . ' ' . $descr; ?>分隔符不像\r\n那样放进PHP_EOL。
怎样才能正确地接受我的数据并将4个变量作为4行插入到我的表中?我把我的脑子都打了出来,因为这个对我来说是新的。
以下是HTML演示:
AITS BARCODE: 80040602970001265368
MFG PN: 130211
MFG SN: ST4315041285
Sensor Processor Card Module, (Sunhillo/Longport)

以下是数据库结果:
AITS BARCODE: 80040602970001265369 MFG PN: 533-0017 MFG SN: C166089 QWERTY Keyboard ASSY, USB BACKLIT (没有换行符,只有空格)。请注意。html换行的PHP_EOL使\r\n在双引号时插入到数据库中。注意,html区域是一个文本区域,如果这很重要的话。记录不匹配,但它是关于表示,而不是数据本身(数据插入很好,但我希望它插入与网页上看到的完全一样)。
发布于 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']));
然后我在数据库里找到了真正的突破口。
https://stackoverflow.com/questions/68863796
复制相似问题