我想“自动”将我所有的数据库数据加载到和/或$_SESSION['db']
。因此,我只需加载一次该代码,而不是在整个网站中加载一些小部分。PHP:用整个数据库数据创建一个数组
我能够查询元数据和原始数据,我的问题是创建数组。
比方说,我有一个表temp
的列name
和age
我希望能够做这样的事情:echo $db['temp']['name'] . "'s age is: " . $db['temp']['age'];
-Obviously我有很多包含大量列的表。这只是一个例子
<?php
$dbn = "db_name";
$dbu = "db_user";
$dbp = "db_password";
$hst = 'db_host';
$dbc = mysql_connect($hst,$dbu,$dbp);
$sql_metadata =
"SELECT `COLUMNS`.`TABLE_NAME` as 'table' , `COLUMNS`.`COLUMN_NAME` as 'column'
FROM `information_schema`.COLUMNS
WHERE `COLUMNS`.`TABLE_SCHEMA` = '$dbn'
ORDER BY TABLE_NAME ASC , `COLUMNS`.`COLUMN_NAME` ASC";
$dbq = mysql_query($sql_metadata, $dbc);
while($meta = mysql_fetch_array($dbq))
{
$sql_rawdata = "SELECT `$meta['column']` FROM `$dbn`.`$meta['table']`";
$dbq2 = mysql_query($sql_rawdata);
foreach(($raw = mysql_fetch_array($dbq2)) as $value))
{
$db = array
(
$meta['table'] => array($meta['column'] => $value)
);
}
}
print_r($db);
?>
我们强烈不推荐的,如果你是一个共享的主机上,在服务器上的任何人都可以从'/ tmp目录/' – Adi
如何读取数据库你有没有想到他的db存储在tmp/-folder中? AFAIK所有表都存储在MySQL安装文件夹中的一个名为“data”的子文件夹中... – Corsair
出于好奇;这是什么目的? – Repox