如何使用SHOW DATABASE LIKE语句获取查询?

时间:2014-09-09 10:13:13

标签: php mysql fetch

我想根据具体名称获取一些数据库。

我有:

$sql="SHOW DATABASES LIKE `'%backup%'`";
$query=mysql_query($sql,$connect);
$row=mysql_fetch_assoc($query);

我需要根据特定名称获取数组中的数据库,但它给了我一个错误:

mysql_fetch_assoc() expects parameter 1 to be resource, boolean 

知道如何做到这一点吗?(是的,我知道mysql已被弃用,但我必须使用它)

4 个答案:

答案 0 :(得分:2)

这里我们去测试和工作,但我建议您使用PDO,因为 mysql _ * api已被弃用。

$sql="SHOW DATABASES LIKE '%backup%'";
$connect = mysql_connect("localhost", "root", "");
$query=mysql_query($sql,$connect) or die(mysql_error());

while($row = mysql_fetch_array($query)) {
 echo $row[0]."<br/>";
}

答案 1 :(得分:1)

我测试了它 使用:
 SHOW DATABASES LIKE '%backup%'

答案 2 :(得分:1)

您是否考虑过只列出所有数据库,然后迭代所有结果,通过正则表达式/ stripos匹配它们并将它们附加到数组中?

$sql="SHOW DATABASES";
$query=mysql_query($sql,$connect);

while ($row=mysql_fetch_assoc($query)) {
$var = preg_match("/backup/", $row['database'])
# Do whatever - append to array, echo, etc
}

答案 3 :(得分:0)

<强> EDITED 使用mysql_select_db选择databases.see here http://php.net/manual/en/function.mysql-select-db.php

或者你可以使用mysql_list_dbs,但问题是它会给所有数据库。所以使用一些循环你必须使用你喜欢的运算符来得到你想要的。看到这个:http://php.net/manual/en/function.mysql-list-dbs.php