我查询了数据库,并得到了符合我的条件的数据库名称列表。这是我为了获取信息而运行的。
$sql = "SELECT DISTINCT tb.TABLE_SCHEMA
FROM
INFORMATION_SCHEMA.TABLES AS tb
INNER JOIN
INFORMATION_SCHEMA.TABLES AS tb2
WHERE tb.TABLE_NAME like '%OPTION%'
AND tb2.TABLE_NAME like '%USER%'";
$query = $handler->prepare($sql);
$query->execute();
$dbnames = $query->fetchAll(PDO::FETCH_COLUMN);
我要完成的工作:
现在有了名称,我需要遍历每个数据库,以便获取网站列表,管理员电子邮件和用户登录名。我知道我可以单独实现,但是我正在尝试使用变量来动态实现。下面的select语句将运行并给出我的答案。但是,在每个数据库中,FROM ysY6q8hmL7_options
中下划线之前的前缀都不同。
SELECT option_value FROM `ysY6q8hmL7_options` WHERE `option_name` = 'home'
我尝试了此代码,但始终出现错误。我怎么解决这个问题。如何在不知道每个表全名的情况下动态运行查询。谢谢。
foreach ($result as $val) {
$sql = "SELECT option_value FROM $val.%_options WHERE option_name = 'home'";
$query = $handler->prepare($sql);
$query->execute();
$dbnames = $query->fetchAll(PDO::FETCH_ASSOC);
printResultConsole($dbnames);
答案 0 :(得分:1)
您的逻辑看起来还不错,但是为什么在表名中使用百分号呢?可能是造成错误的原因(顺便说一句,您应该分享其消息)。
尝试以下方法:
then do
putStrLn "Enter a number: "