Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Làm thế nào để tìm nạp loại trường và giá trị?

Chỉnh sửa: Tôi đặt đầu ra trong một bảng vì tôi không thể ngủ ...

Được rồi ... xem đây có phải là điều bạn muốn không ...

Đây là bảng tôi đã lập cho một câu hỏi SO khác:

mysql> describe user;
+-------------+------------------+------+-----+---------+----------------+
| Field       | Type             | Null | Key | Default | Extra          |
+-------------+------------------+------+-----+---------+----------------+
| User_ID     | int(10) unsigned | NO   | PRI | NULL    | auto_increment |
| Email       | varchar(100)     | YES  |     | NULL    |                |
| Name        | varchar(100)     | YES  |     | NULL    |                |
| Password    | varchar(100)     | YES  |     | NULL    |                |
| FB_ID       | int(11)          | YES  |     | NULL    |                |
| Total_Score | int(11)          | YES  |     | 0       |                |
| add_date    | datetime         | YES  |     | NULL    |                |
+-------------+------------------+------+-----+---------+----------------+
7 rows in set (0.00 sec)

và từ DB:

mysql> select * from user limit 1;
+---------+-------+------+----------+-------+-------------+---------------------+
| User_ID | Email | Name | Password | FB_ID | Total_Score | add_date            |
+---------+-------+------+----------+-------+-------------+---------------------+ 
|       1 | NULL  | kim  | NULL     |  NULL |          10 | 2013-11-03 23:04:08 |
+---------+-------+------+----------+-------+-------------+---------------------+
+
1 row in set (0.00 sec)

Và mã:

<?php
$mysqli = mysqli_connect("localhost", "root", "", "test");

// this came from http://php.net/manual/en/mysqli-result.fetch-field-direct.php 
$mysql_data_type_hash = array(
    1=>'tinyint',
    2=>'smallint',
    3=>'int',
    4=>'float',
    5=>'double',
    7=>'timestamp',
    8=>'bigint',
    9=>'mediumint',
    10=>'date',
    11=>'time',
    12=>'datetime',
    13=>'year',
    16=>'bit',
    //252 is currently mapped to all text and blob types (MySQL 5.0.51a)
    253=>'varchar',
    254=>'char',
    246=>'decimal'
);

// run the query... 
$result = $mysqli->query("select * from user limit 1"); 

// get one row of data from the query results 
$proceso = mysqli_fetch_assoc($result);

print "<table>
        <tr>
           <th>\$key</th>
           <th>\$value</th>
           <th>\$datatype</th>
           <th>\$dt_str</th>
        </tr>  ";

// to count columns for fetch_field_direct()
$count = 0; 

// foreach column in that row...
foreach ($proceso as $key => $value) 
{
  $datatype = $result->fetch_field_direct($count)->type;  
  $dt_str   = $mysql_data_type_hash[$datatype];
  $value    = (empty($value)) ? 'null' : $value;  

  print "<tr>
           <td>$key</td>
           <td>$value</td>
           <td class='right'>$datatype</td>
           <td>$dt_str</td>
         </tr>  ";  
  $count++; 
} 

print "</table>"; 

mysqli_close($mysqli);
?> 

<style>
   /* this is css that you don't need but i was bored so i made it pretty...! */
   table   { font-family:Courier New; 
             border-color:#E5E8E3; border-style:solid; border-weight:1px; border-collapse:collapse;}
   td,th   { padding-left:5px; padding-right:5px; margin-right:20px; 
             border-color:#E5E8E3; border-style:solid; border-weight:1px; }
   .right  { text-align:right }
</style>

Vì vậy, ... để làm rõ ...

Bạn có thể sử dụng các biến này trong foreach đó để xuất hoặc sử dụng thông tin theo cách bạn muốn:(Tôi đang sử dụng hàng đầu tiên của mình, cho user_id, làm ví dụ)

  • $key là tên cột / trường (chẳng hạn như user_id )

  • $field_types[$key] đến từ $result->fetch_field_direct($i)->type (chẳng hạn như 3 )

  • $mysql_data_type_hash[$datatype] là phiên bản chuỗi của kiểu dữ liệu sử dụng $mysql_data_type_hash mảng ở đầu mã. Điều này không cần thiết nhưng tôi đã bao gồm nó để ví dụ này rõ ràng hơn. (chẳng hạn như int )

  • $proceso[$key] = $value = là giá trị của bạn cho lần lặp lại câu lệnh foreach này (chẳng hạn như 1 )

Đầu ra:

$key           $value          $datatype      $dt_str
User_ID        1                       3      int
Email          null                  253      varchar
Name           kim                   253      varchar
Password       null                  253      varchar
FB_ID          null                    3      int
Total_Score    10                      3      int
add_date       2013-11-03 23:04:08    12      datetime



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sử dụng cuộn vô hạn w / a Cơ sở dữ liệu MySQL

  2. cách lấy giá trị trong mảng từ từng truy vấn

  3. Facebook không thể loại bỏ dữ liệu meta sau khi tôi chuyển Wordpress sang máy chủ mới

  4. Trả lại JSON từ MySQL với Tên cột

  5. 'Quyền truy cập bị từ chối đối với người dùng' root '@' localhost '(sử dụng mật khẩu:NO)'