我觉得这个问题可能有一个非常简单的答案,但我花了大约 20 分钟搜索,但找不到任何东西。
基本上,我使用 PHP 查询表并将结果输出为列表,使用表的主键列 (COL_1) 为每条记录创建一个链接,将用户带到该记录的详细信息页面记录。当 COL_1 中的数据是直接字符串(例如“TEST”)时,它可以正常工作。编辑链接将是 detail.php?COL_1=TEST
详细信息页面通过使用链接传递的数据查询数据库来工作。因此,在这种情况下,它将在 COL_1 = 'TEST' 的表上进行选择并返回正确的记录。
但是,当新行字符存储在 COL_1 中时,事情会变得有点复杂。例如,如果 'TEST\r\nTEST' 存储在 COL_1 中,则当整个表的原始查询完成时,该行的 $row['COL_1'] 将为我提供 'TESTTEST',它将传递给详细信息页面为 detail.php?COL_1=TESTTEST
,详细信息页面在 COL_1 = 'TESTTEST' 的表上进行选择,并且不返回任何内容。
但是,如果我手动链接到detail.php?COL_1=TEST\r\nTEST,详细信息页面将查询“TEST\r\nTEST”并返回正确的记录。
所以基本上我需要的是一种执行查询并让 $row['COL_1'] 返回 'TEST\r\nTEST' 而不是 'TESTTEST' 的方法。这有道理吗?我该如何去做呢?
至于为什么 table 要这样设置,别问我。我没有设计它。我永远不会设计可以包含这样的换行符的键。但我确实必须与这张 table 互动。呸。
最佳答案
您应该对 URL 中传递的值进行编码:
echo urlencode("TEST\r\nTEST");
但是,为什么TEST\r\nTEST
会成为主键?太疯狂了。也许你需要重新思考你是如何做事的。主键作为整数可以很好地工作。
关于php - PHP 如何准确地回显 MySQL 字段中存储的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23300231/