我正在使用 php 7.2、mysql pdo 并尝试获取列类型、名称和值。我一直在使用它,它对列名和值做得很好,但现在我想动态读取类型(varchar、文本、日期等...)
$sql = "SELECT * FROM myTable WHERE id = :id limit 1";
$st = $db->prepare($sql);
$st->execute([":id" => $id]);
$row = $st->fetch(PDO::FETCH_ASSOC);
if (count($row) >= 1) {
foreach ($row as $column => $value) {
$$column = $value;
}
}
尝试执行以下查询:
SHOW COLUMNS FROM myTable;
例如:
mysql> SHOW COLUMNS FROM price;
+----------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------------+--------------+------+-----+---------+----------------+
| price_id | int(11) | NO | PRI | NULL | auto_increment |
| effective_date | date | NO | | NULL | |
| min_quantity | int(11) | NO | | NULL | |
| price | decimal(7,0) | NO | | NULL | |
+----------------+--------------+------+-----+---------+----------------+
4 rows in set (0.01 sec)
Column Field 将为您提供列名称,键入列类型,Null 将为“NO”或“YES”,具体取决于该列是否可为空,如果该列是列的一部分,则 Key 将为“PRI”主键等。阅读手册。