查询.SQL文件(无需加载到数据库)

时间:2017-01-29 16:33:40

标签: php mysql sql

我有一个充满MySQL文件的文件夹。将每个备份写入自己的数据库,然后查询的过程是一个选项,但我想要做的只是SELECT来自它们的信息。

我的问题:有没有办法在本地查询这些数据库?这最终将在更大的PHP脚本中使用,因此如果需要,我可以选择使用PHP。

1 个答案:

答案 0 :(得分:0)

我发现自己处于类似情况。我还没有找到一种方法来查询而不首先加载数据库,但是还有其他提取数据的方法。您可以使用模式匹配,然后根据需要解析数据。以下是正则表达式的示例,它将返回行匹配的特定行值(请参阅组#2结果):http://regexr.com/3gf9p。这个例子是提取' active_plugins'来自WordPress数据库备份的行。

从命令行,您可以使用perl运行模式并将结果存储在bash变量中。

active_plugins=`perl -n -e '/(\047active_plugins\047,\047)(.+?)(\047,\047yes\047\),)/&& print $2' ~/Backup/websitename.com/wp-content/mysql.sql`

在此示例中,结果将被序列化并添加斜杠。您可以通过PHP文件传递它来解析。

php unserialize.php $active_plugins

以下是unserialize.php文件

中的内容
<?php
print_r( unserialize( stripslashes( $argv[1] ) ) );

如果您不熟悉编写自己的正则表达式,我强烈建议您观看此系列:https://laracasts.com/series/understanding-regular-expressions。这对我来说是一个巨大的帮助。您可能注意到的一件事是我使用\047而不是单引号'。这是由于在命令行上转义的问题。