php - 使用 dbDelta 的 WordPress 创建表在插件中不起作用
问题描述
我的自定义 WordPress 插件使用 dbDelta 创建表时遇到问题。为了创建,我创建了一个函数,当我调用 dbDelta 时它会返回我的表:
private function get_db_schema(): string {
$collate = '';
if ( $this->wpdb->has_cap( 'collation' ) ) {
$collate = $this->wpdb->get_charset_collate();
}
return "
CREATE TABLE {$this->wpdb->prefix}woomex_exported_orders (
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
order_id BIGINT UNSIGNED NOT NULL,
status varchar(255) NOT NULL,
payment_status varchar(255) NOT NULL DEFAULT 'pending',
invoice_status varchar(255) NOT NULL DEFAULT 'pending',
cancellation_invoice_status varchar(255) NOT NULL DEFAULT 'pending',
delivery_status varchar(255) NOT NULL DEFAULT 'pending',
date_exported timestamp NOT NULL default CURRENT_TIMESTAMP
PRIMARY KEY (id)
) $collate;
";
}
之后我打电话给:
dbDelta( $this->get_db_schema() );
我没有收到任何错误,但也没有表格。我确定我的函数被调用了,因为我通过登录验证了这一点。有谁知道我在这里做错了什么?
解决方案
推荐阅读
- python - 使用python将一个大的csv文件插入mysql表
- java - 是一种在 Spring Boot application.yml 中为具有默认值的列表定义变量的方法
- java - 在类加载器中隔离 fat jar 依赖项
- unity3d - Unity 2D 球反弹
- angular - 如何以编程方式和移动拇指来更新 Nativescript Slider 中的值
- python - 使用 twitter api 从 twitter 中提取 10 个受欢迎的用户
- c++ - 将左值到右值的转换应用于变量 `x` 不会在下面的代码中产生常量表达式。这是为什么?
- java - 单个表单中的多个 SwipeableContainers
- node.js - Nginx 代理 https 到 webpack http 后端
- python - 让 'put' 方法根据需要自动调整 HashTable 实例的大小