我想编写一个函数,它从数据库表中获取所有字段并将其放入数组中。 获取数据库字段的方式如下:
$sq = "select column_name,data_type from information_schema.columns
where table_name='users'";
我只是不确定如何正确存储它们。
当有例如。这个数据库结构:
fieldname type length
--------------------------------
id int 11
username varchar 50
pass varchar 50
lastlogin date
在php中存储这些数据的最佳方法是什么,以便像这样查询:
$field = myFields["username"];
echo $field->id."/".$field->type."/".field->length;
正如您所见,我想通过字段名称
直接访问数据答案 0 :(得分:2)
确保首先连接到数据库。然后做:
$r = mysql_query('SELECT COLUMN_NAME AS fieldname,
DATA_TYPE AS type,
CHARACTER_MAXIMUM_LENGTH AS length
FROM information_schema.columns
WHERE table_name = "users" AND column_name = "username"');
if ($r)
{
$field = mysql_fetch_object($r);
// $field->type, $field->length, etc.
}
答案 1 :(得分:1)
$sql = "YOUR QUERY HERE";
$res = mysql_query($sql);
while ($rowobj = mysql_fetch_object($res)) {
// do what you want to do with $rowobj
echo $rowobj->column_name1 . "<br />\n";
echo $rowobj->column_name2 . "<br />\n";
// ...rest of code...
}
将您的查询放入$ sql变量,并将while循环中的column_nameX替换为您使用查询选择的列。
答案 2 :(得分:1)
$query = mysql_query("SELECT * FROM table");
$result = array();
while($row = mysql_fetch_array($query))
{
$username = $row['username'];
unset($row['username']);
$result[$username] = (object)$row;
}
然后您可以使用以下方式访问它:
$result['username']->id