phpMyAdmin不支持自定义行分隔符,仅识别标准换行符(\n、\r\n、\r);其CSV导入基于PHP的fgetcsv(),忽略“LINES TERMINATED BY”设置,仅“字段分隔符”和“使用引号包裹字段”生效;非标准行分隔符需预处理为标准换行或改用MySQL命令行LOAD DATA INFILE。
phpMyAdmin根本不解析“行分隔符”字段
你填的 lines terminated by 或 “行结束符”在 phpmyadmin 导入界面里压根不生效——那个输入框是灰的,或者填了也毫无作用。原因很简单:phpmyadmin 的 csv 导入逻辑完全绕过了 mysql 的 load data infile 语法,它用的是 php 逐行读取 + fgetcsv() 解析,而 fgetcsv() 只认 \n、\r\n、\r 这三种换行符,不支持任意字符串(比如 ||| 或 ~\n)作为行分隔符。
实际生效的只有“字段分隔符”和“字段引号”
真正起作用的只有两个配置项:
-
字段分隔符:决定列怎么切,比如填;就按分号切 -
使用引号包裹字段:决定是否用双引号处理含换行、逗号的字段
只要你 CSV 文件本身用的是标准换行(\n 或 \r\n),导入就能继续;如果文件用了自定义行分隔符(如 @@@),phpMyAdmin 会把它当成普通字符塞进最后一列,导致“列数不匹配”或数据错位。
使用 qbo-mileage CLI 及用户凭证,从 Airtable、Outlook 或 Google Calendar 记录生成 QuickBooks Online 里程 CSV 文件。
想用非标准行分隔符?必须预处理或换工具
没有绕过办法,只能提前把文件转成标准格式:
- 用
sed或 Python 把自定义行分隔符替换成\n:sed 's/@@@/\n/g' input.csv > fixed.csv - 用 Python 脚本重写(注意保留 BOM 和编码):
open('fixed.csv', 'w', encoding='utf-8-sig')再逐行写入 - 放弃 phpMyAdmin,改用 MySQL 命令行执行
LOAD DATA INFILE,它才真正支持LINES TERMINATED BY '@@@'
最后提醒一句:哪怕你成功让某次导入“看起来没报错”,只要原始文件用了非标准换行符,phpMyAdmin 就没真正按你的意图拆行——它只是把整块文本当成了单行数据,后面字段全错位,这种问题上线后极难排查。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!










