mysql データベースのテーブルの情報の配列を返す PHP 関数を作成しています。私はphpでコーディングするのが初めてで、同じことをより効率的に行う方法を探しています。私の方法はあまり効率的ではないようです。これは、mysql 結合ステートメントを使用するのに適した場所でしょうか?
これが私の機能です。
public static function getAllTables()
{
// Get an array of all the tables in the database
$sql = "SHOW TABLES";
//this makes a connection to mysql database using mysqli
$mysqlConnection = new CMySqlConnection();
$result = $mysqlConnection->mysqli->query($sql);
$tablesArray = array();
while($row = $result->fetch_row()) {
$tablesArray[$row[0]]=array();
}
$result->close();
//Get an array of all the table names in database
$arrayKeys = array_keys($tablesArray);
//foreach table get the column's info
foreach($arrayKeys as $key){
$sql=" SHOW COLUMNS from " . $key;
$result = $mysqlConnection->mysqli->query($sql);
for($i = 0; $row = $result->fetch_row(); $i++) {
//format the array to use a descriptive key rather than a number
$row['columnName'] = $row[0];
$row['type'] = $row[1];
$row['null'] = $row[2];
$row['key'] = $row[3];
$row['default'] = $row[4];
$row['extra'] = $row[5];
unset($row[0]);
unset($row[1]);
unset($row[2]);
unset($row[3]);
unset($row[4]);
unset($row[5]);
// put the column info into the tables array
$tablesArray[$key][$i] = $row;
}
$result->close();
}
$mysqlConnection->Disconnect();
// return the tables array
return $tablesArray;
}
ご意見ありがとうございます:)