【发布时间】:2012-06-14 23:48:32
【问题描述】:
我想“自动”将我的所有数据库数据加载到$db[] 和/或$_SESSION['db']。因此,我只需要加载此代码一次,而不是在整个网站上加载零碎的代码。
我能够查询元数据和原始数据,我的问题是创建数组。
假设我有一个表temp 与列name 和age 我希望能够做这样的事情:echo $db['temp']['name'] . "'s age is: " . $db['temp']['age']; -显然我有很多表有很多列。这只是一个例子
<?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/读取你的数据库 -
您是如何想到他的数据库存储在 tmp/-文件夹中的? AFAIK 所有表都存储在 MySQL 安装文件夹中名为“data”的子文件夹中......
-
出于好奇;这样做的目的是什么?
-
@Corsair,OP提到他想存储在
$_SESSION,会话数据存储在/tmp/ -
@repox 我不想在每个页面上添加 php 的 mysql 函数和代码,而是希望“一次”在所有 '*.php' 请求中都可用数据库的数据。
标签: php mysql database multidimensional-array