Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP检查.sql转储文件中是否存在行_Php_Mysql_Mysqldump - Fatal编程技术网

PHP检查.sql转储文件中是否存在行

PHP检查.sql转储文件中是否存在行,php,mysql,mysqldump,Php,Mysql,Mysqldump,我想知道如何在不将行加载到数据库的情况下检查MYSQL.sql转储文件中是否存在行。我还想检查3个字段。FieldA、FieldB、FieldC和userinfo1、userinfo2、userinfo3,所有这些都是字符串。文件名为database1.sql,存储在FTP服务器上。有没有一种方法可以将文件留在另一台服务器上,而不将其导入另一个数据库?好的,首先,如果不将文件放在运行PHP的服务器上,就无法对该文件进行任何处理。但是,您可以使用一个PHP脚本登录到FTP并自动下载和处理文件 至于

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

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

至于SQL处理,最简单的方法是逐行读取文件,首先使用strpos(“插入到…”)检查正确查询类型的开头(插入、更新…不管它是什么),然后使用以下方法:


然后检查生成的数组并比较值。这相当简单,也很容易做到。但是库会带来一些开销,因此如果速度有问题或文件非常大,则需要一些复杂的preg_match正则表达式来获取必要的值并对其进行校验和。之后,您可以将它们存储在临时数组中,然后每次检查这个校验和数组,以匹配您是否已经有了这些值…

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

至于SQL处理,最简单的方法是逐行读取文件,首先使用strpos(“插入到…”)检查正确查询类型的开头(插入、更新…不管它是什么),然后使用以下方法:


然后检查生成的数组并比较值。这相当简单,也很容易做到。但是库会带来一些开销,因此如果速度有问题或文件非常大,则需要一些复杂的preg_match正则表达式来获取必要的值并对其进行校验和。之后,您可以将它们存储在临时数组中,然后每次通过此校验和数组来匹配您是否已经有了这些值…

对于$n=0..n:
fseek($n*10000)
$s=fgets(10000+500);
预匹配(…,$s)
您是否尝试过在文本编辑器上打开文件并使用“查找”?太大?可能使用
grep
(如果您使用的是linux/unix)php是否有相应的方法(可以在不下载文件的情况下搜索文件)?没有PHP没有。据我所知,这是不可能的。实现这一点的唯一方法是使用SSH。您可以使用类似于
SSH的东西user@hostnamecat/path/to/file | grep FieldA
。主机名后的所有内容都是正常的linux命令。如果$n=0..n:
fseek($n*10000),则可能重复
$s=fgets(10000+500);
preg_match(…,$s)
您是否尝试在文本编辑器上打开文件并使用“查找”命令?太大?可能使用
grep
(如果您在linux/unix上)php是否有相应的方法(可以在不实际下载的情况下搜索文件)?没有PHP没有。据我所知,这是不可能的。实现这一点的唯一方法是使用SSH。您可以使用类似于
SSH的东西user@hostnamecat/path/to/file | grep FieldA
。主机名后的所有内容都是普通的linux命令。