是否有PHP的脚本或类来解析mysql转储文件中的插入值?我写了一个脚本来按导出来的数据。我想解析所有的值来做一些一致性测试,我想知道这个问题是否已经解决了。
例如,在转储文件中,我有
INSERT INTO table ( field1, field2, ... ) VALUES ( "a", "B", ...);
我要提取
a
B
测试这些值,看看它们是我认为它们应该是什么。
我还需要这个能够处理扩展插入格式,即VALUES ( "a", "B", ...), ( "c", "D", ...), ( "e", "F", ...),
。
答案 0 :(得分:2)
php-sql-parser应该做你想要的。以下是其手册的链接:
答案 1 :(得分:0)
鉴于您的意见,我想提供一些提示,说明我认为处理此问题的最佳方法。
您不应将序列化数据存储在关系数据库中。相反,您应该规范化数据,以便充分利用关系数据库提供的功能。我不知道你的项目有多深,但如果可能的话,我强烈建议你进行重构。
如果您必须继续存储/使用序列化数据(强烈建议不要这样做),我会考虑完全避免转储,并使用以下内容:
在PHP中处理数据,然后直接更新:
$tables = $db->query("SHOW tables");
foreach ($tables as $table) {
$rows = $db->query("SELECT * FROM $table");
foreach ($rows as $row) {
$foo = unserialize($row['foo']);
$foo = massage($foo);
$db->query("UPDATE $table SET foo=$foo");
}
}