1

我想知道如何检查 MYSQL .sql 转储文件中是否存在一行而不将其加载到数据库中。我还想检查 3 个字段。FieldA、FieldB、FieldC 和 userinfo1、userinfo2、userinfo3,所有这些都是字符串。文件名为 database1.sql,存储在 FTP 服务器上。有没有办法将文件留在另一台服务器上而不将其导入另一个数据库?

4

1 回答 1

1

好的,首先,如果没有运行 PHP 的服务器上的文件,就无法对文件进行任何处理。但是,您可以使用 PHP 脚本登录 FTP 并自动下载和处理文件。

对于 SQL 处理,最简单的方法是逐行读取文件,首先使用 strpos("INSERT INTO .....) 来检查正确查询类型的开头(插入,更新......无论它可能是然后使用类似的东西:

https://code.google.com/p/php-sql-parser/wiki/ParserManual 并检查生成的数组并比较值。这是相当简单和容易做到的。然而这个库有一些开销,所以如果速度是一个问题或文件非常大,你将需要一些复杂的 preg_match 正则表达式来获取必要的值并对它们进行校验和。之后,您可以将它们存储在一个临时数组中,并每次检查此校验和数组以匹配您是否已经拥有这些值......

于 2013-03-06T07:23:27.533 回答