我想根据具体名称获取一些数据库。
我有:
$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已被弃用,但我必须使用它)
答案 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