Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

फ़ील्ड प्रकार और मूल्य कैसे प्राप्त करें?

संपादित करें: मैंने आउटपुट को एक टेबल में रखा क्योंकि मुझे नींद नहीं आ रही है...

ठीक है... देखें कि क्या आप यही चाहते हैं...

यह एक टेबल है जिसे मैंने एक अलग SO प्रश्न के लिए बनाया है:

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)

और डीबी से:

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)

और कोड:

<?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>

तो... स्पष्ट करने के लिए...

आप इन चरों का उपयोग उस foreach . में कर सकते हैं अपनी इच्छानुसार जानकारी को आउटपुट या उपयोग करने के लिए:(उदाहरण के तौर पर मैं user_id के लिए आउटपुट की अपनी पहली पंक्ति का उपयोग कर रहा हूं)

  • $key कॉलम/फ़ील्ड नाम है (जैसे user_id )

  • $field_types[$key] $result->fetch_field_direct($i)->type . से आता है (जैसे 3 )

  • $mysql_data_type_hash[$datatype] $mysql_data_type_hash . का उपयोग करके डेटाटाइप का स्ट्रिंग संस्करण है कोड के शीर्ष पर सरणी। यह आवश्यक नहीं है लेकिन मैंने इसे शामिल किया है इसलिए यह उदाहरण अधिक स्पष्ट है। (जैसे int )

  • $proceso[$key] = $value = फ़ोरैच स्टेटमेंट के इस पुनरावृत्ति के लिए आपका मूल्य है (जैसे 1 )

आउटपुट:

$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. Mysql में ऑटोरनिंग क्वेरी

  2. दिनांक और अन्य फ़ील्ड द्वारा समूहीकृत कुल फ़ील्ड प्राप्त करें

  3. X दिनों की श्रेणी के अनुसार समूहित करें

  4. Symfony2 AJAX कॉल पर खाली JSON लौटाता है जबकि चर खाली नहीं है

  5. डेटाबेस से जानकारी प्राप्त करना MYSQL और Codeigniter