Mysql pdo 列类型、名称和值

标签 mysql pdo metadata database-schema

我正在使用 php 7.2、mysql pdo 并尝试获取列类型、名称和值。我一直在使用它,它对列名和值很有帮助,但现在我想动态读取类型(varchar、text、date 等...)

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

字段将为您提供列名称键入列类型,Null 将为“NO”或“YES”,具体取决于列是否可以为空,Key如果该列是主键的一部分,则将为“PRI”。请阅读手册。

关于Mysql pdo 列类型、名称和值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56243386/

相关文章:

MySQL:如何选择顶级买家并对总订单求和?

mysql - 如何在 mySQL 中执行 "with CTE"?

php - 不要在 mysql 数据库中复制内容

php - mysql LIMIT 和 PDO 的问题

php - 显示该国家世界排名前 5% 和 10% 的奖杯 [按百分比排名系统]

mysql - "Proper"存放MySQL数据库描述的地方

php - HTML(输入)->php->mysql->php->json->HTML 渲染

PHP、MySQL、PDO 事务 - fetchAll() 可以在 commit() 之前出现吗?

twitter - Twitter 卡片中 "@@"和 "@"之间的区别

c# - 域驱动设计中每个实体的创建者、编辑者、创建日期、修改日期属性