php: (новичок) определение поля базы данных в массив - PullRequest
1 голос
/ 01 апреля 2011

Я хотел бы написать функцию, которая извлекает все поля из таблицы базы данных и помещает ее в массив. получение полей базы данных уже работает так:

$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;

как видите, я бы хотел получить доступ к данным напрямую по имени поля

Ответы [ 3 ]

2 голосов
/ 01 апреля 2011

Убедитесь, что вы сначала подключились к базе данных. Затем выполните:

    $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 голос
/ 01 апреля 2011
$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
1 голос
/ 01 апреля 2011
$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 и замените column_nameX в цикле while столбцами, которые ВЫ ВЫБИРАЛИ при помощи своего запроса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...