據我所知有正從MySQL數據庫名稱的列表到一個數組在PHP的幾個方法:獲取架構名單的mysqli
//connect to database
$link = mysqli_connect(HOST, USERNAME, PASSWORD);
mysqli_select_db($link, DB_PRESENTATION_LAYER);
//1
$query = "SHOW DATABASES";
$databases = mysqli_query($link, $query);
$databases = mysqli_fetch_row($databases);
//2
$query = "SELECT `SCHEMA_NAME` FROM 'information_schema.SCHEMATA'";
$databases = mysqli_query($link, $query);
$databases = mysqli_fetch_row($databases);
//3 (DEPRECATED as of PHP 5.4.0)
$databases = mysql_list_dbs($link);
var_dump($databases);
當我做任何上述我得到的返回是:
array (size=1)
0 => string 'information_schema' (length=18)
這是爲什麼? 此外,爲什麼不更新mysql_list_dbs()函數與mysqli一起使用?
結論
其他任何人試圖讓數據庫列表,這是我的功能(希望我能挽救這個問題有些用處)。
用'數據庫'代替想要返回的數據庫的前綴,或者只是將其刪除以獲取所有數據庫的前綴。
public function get_database_list() {
$databases = array();
$query = "SELECT `schema_name` FROM information_schema.schemata WHERE schema_name LIKE 'database%'";
$result = mysqli_query($this -> link1, $query);
while($row = mysqli_fetch_array($result)) {
array_push($databases, $row['schema_name']);
}
return $databases;
}
'fetch_row'從返回的結果數據的單行。您需要在循環中獲取所有行。 –
Awwh ...現在我感到很傻,歡呼聲! – Edward