Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >不使用插件的DB查询

不使用插件的DB查询
EN

WordPress Development用户
提问于 2018-10-22 02:53:34
回答 1查看 409关注 0票数 0

我正在开发一个插件。我想通过插件创建一个表格。因此,我正在尝试执行以下SQL查询。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
global $wpdb;
$createSQL              =   "
CREATE TABLE `". $wpdb->prefix ."_book_ratings` (
  `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT,
  `book_id` bigint(20) UNSIGNED NOT NULL,
  `rating` float(3.1) UNSIGNED NOT NULL,
  `user_ip` varchar(32) NOT NULL
) ENGINE=InnoDB" . $wpdb->get_charset_collate() . " AUTO_INCREMENT=1;
";

require( ABSPATH . '/wp-admin/includes/upgrade.php' );
dbDelta( $createSQL );

当我禁用插件和重新激活插件时,我将得到以下错误。

The plugin generated 464 characters of unexpected output during activation. If you notice “headers already sent” messages, problems with syndication feeds or other issues, try deactivating or removing this plugin.

请让我知道我哪里错了。

EN

回答 1

WordPress Development用户

回答已采纳

发布于 2018-10-22 06:23:33

查看$createSQL中的SQL查询,

  1. ENGINE=InnoDB" . $wpdb->get_charset_collate() . " AUTO_INCREMENT=1;的结果是:查询错误(1286):未知存储引擎'InnoDBDEFAULT‘来修复它,在ENGINE=InnoDB (存储引擎)和" . $wpdb->get_charset_collate() (字符集)之间添加一个空格。
  2. 您已经将列id定义为AUTO_INCREMENT,但该列不是键,这会导致以下错误:查询中的错误(1075):表定义错误;只能有一个auto列,必须将其定义为一个键来修复它,使用PRIMARY KEY (id)KEY(id)将列id定义为一个键。

因此,下面是在WordPress 4.9.8上尝试和测试的固定代码(或SQL ):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$createSQL              =   "
CREATE TABLE `". $wpdb->prefix ."_book_ratings` (
  `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT,
  `book_id` bigint(20) UNSIGNED NOT NULL,
  `rating` float(3.1) UNSIGNED NOT NULL,
  `user_ip` varchar(32) NOT NULL,
  PRIMARY KEY (id)
) ENGINE=InnoDB " . $wpdb->get_charset_collate() . " AUTO_INCREMENT=1;
";

如果这不适用于您,请遵循指南这里,例如在单词主键和主键定义之间使用两个空格。

票数 1
EN
页面原文内容由WordPress Development提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://wordpress.stackexchange.com/questions/317280

复制
相关文章
display属性值有哪些_验证控件display属性
<html> <head> <meta charset=”utf-8″> <title>W3Cschool教程(w3cschool.cn)</title> <style> #main { width: 70px; height: 300px; border: 1px solid #c3c3c3; display: -webkit-flex; display: flex; /* 设置flex布局*/ -webkit-flex-wrap: wrap; flex-wrap: wrap;/*换行*/ -webkit-align-content: center; align-content: center; /*垂直对齐*/ }
全栈程序员站长
2022/11/01
2.2K0
display属性值有哪些_验证控件display属性
有什么方法可以快速筛选出 pitch 中的值 在0.2 > x > -0.2 的值?
前几天在Python钻石交流群有个叫【进击的python】的粉丝问了一个Python基础的问题,这里拿出来给大家分享下,一起学习下。
前端皮皮
2022/08/17
1.2K0
有什么方法可以快速筛选出 pitch 中的值 在0.2 > x > -0.2 的值?
Spring Boot 定义接口的方法是否可以声明为 private?
估计很少有人会把接口方法定义成 private 的吧?那我们不禁要问,如果非要定义成 private 的方法,那能运行起来吗?
江南一点雨
2021/04/02
6040
Java比较两个对象中属性值是否相同【使用反射实现】
在工作中,有些场景下,我们需要对比两个完全一样对象的属性值是否相等。比如接口替换的时候,需要比较新老接口在相同情况下返回的数据是否相同。这个时候,我们怎么处理呢?这里凯哥就使用Java的反射类实现。
凯哥Java
2022/12/16
3.6K0
用画小狗的方法来解释Java中的值传递
答案是 A旺财,changeName方法并没有把myDog的名称改了。如果你答错了,没关系,我要开始画小狗了,画完你就明白了;如果你答对了,但不太明白其中的原因,那我画的小狗也肯定能帮到你。
凯哥Java
2019/07/01
8900
【javascript】hasOwnProperty()方法检查对象是否有该属性
hasOwnProperty() 只会检查对象的自有属性,对象原形上的属性其不会检测;但是对于原型对象本身来说,这些原型上的属性又是原型对象的自有属性,所以原形对象也可以使用hasOwnProperty()检测自己的自有属性
唯一Chat
2022/09/27
1.1K0
使用JSON Schema来验证接口数据
该文介绍了如何使用JSON Schema来验证接口数据。JSON Schema是一种用于定义和验证JSON数据结构的工具。它可以定义一个JSON对象,并指定该对象中哪些字段是必须的,哪些字段是可选的,以及字段的类型和约束。使用JSON Schema可以方便地验证JSON数据是否符合预期的格式,并确保数据中的字段类型和约束符合要求。该文还介绍了如何使用Dojo Toolkit中的JSON Schema验证模块来验证JSON数据,并提供了相关的示例代码。
IMWeb前端团队
2017/12/29
2.3K0
使用JSON Schema来验证接口数据
最近在做一些关于JSON Schema的基建,JSON Schema可以描述一个JSON结构,那么反过来他也可以来验证一个JSON是否符合期望的格式,于是我想到之前lqlong 之前的一篇 《数据字段防卫探索》 发现JSON Schema可以做这个事情。
IMWeb前端团队
2019/12/04
2.1K0
Java 中如何判断数组中是否包含某个值?
public static boolean useLoop(String[] arr, String targetValue) { for(String s: arr){ if(s.equals(targetValue)) return true; } return false; }
水货程序员
2018/11/13
5.9K0
java9-可以在interface中定义私有方法了
在传统的Java编程中,被广为人知的一个知识点是:java Interface接口中不能定义private私有方法。只允许我们定义public访问权限的方法、抽象方法或静态方法。但是从Java 9 开始,Interface 接口中允许定义私有方法和私有静态方法。下面我们就来为大家介绍其语法规则,和为什么要有这样的设计。
字母哥博客
2020/10/14
1.7K0
如何检查 Java 数组中是否包含某个值 ?
在逛 programcreek 的时候,我发现了一些专注细节但价值连城的主题。比如说:如何检查Java数组中是否包含某个值 ?像这类灵魂拷问的主题,非常值得深入地研究一下。
用户7886150
2021/04/28
9.1K0
Java之判断数组中是否包含某个值
方式一:使用Arrays.asList(str).contains() public static boolean useList(String[] arr, String targetValue) { return Arrays.asList(arr).contains(targetValue); } 示例如下: String[] str={"学历教育","专业教育","通识教育","其它在职训"} ; if (!Arrays.asList(st
IT工作者
2022/02/12
4.2K0
Java|方法的定义(形参、实参、返回值)
方法很类似于面向过程中的函数。面向过程中,函数是最基本单位,整个程序由一个个函数调用组成。
算法与编程之美
2020/08/06
1.8K0
JNI:取得Java属性和设置Java属性值
可以使用GetObjectField来获取数组类型的属性。不过JNI提供了一系列方法获取数组的属性,后续介绍。
BUG弄潮儿
2022/03/08
2K0
一种自动的将自定义类序列化为JSON的方法
最近因为项目需求,需要将一些自定义的类序列化为JSON,网上有很多好用的第三方序列化工具,但都只能自动序列化一些基本类型,如NSNumber,NSString与NSDictionary这种,没有一种第三方工具提供直接将自定义类序列化的方法(至少据我所知:),而对于这种序列化自定义的类的需求,网上能查到的方法只有将自定义的类手动的转存为一个NSDictionary,然后再使用第三方工具来序列化。例如对于一个类Foo,有如下定义: @interface Foo : NSObject {   NSStri
阿新
2018/04/12
1.1K0
jquery判断数组中是否包含某个元素的值_java判断元素是否在数组中
如果arry数组里面存在”C#” 这个字符串则返回该字符串的数组下标,否则返回(不包含在数组中) -1
全栈程序员站长
2022/11/02
5.8K0
java 根据list对象中的一个属性值是否一致去重的简单做法
创建一个临时的数组 筛选要去重的数组,把对象是不重复的放到临时创建的数组中 判断这个去重的数组在不重复的数组中是否存在 再获得这个数组 一个foreach/for一定可以用stream来处理,去重也可以用lambda表达式来做 List<ApprovalChainInfoData> temp = new ArrayList<>(); approvalChainInfoData = approvalChainInfoData1.stream().filter(i -> {
gfu
2019/11/14
4.2K0
Java中interface属性和实例方法
A.接口Nameable无法编译。B.类Employee无法编译。C.类HR无法编译。D.输出John Doe。
FunTester
2020/02/17
2K0
【源头活水】一种高效评估预训练模型是否适合当前任务的方法
“问渠那得清如许,为有源头活水来”,通过前沿领域知识的学习,从其他研究领域得到启发,对研究问题的本质有更清晰的认识和理解,是自我提高的不竭源泉。为此,我们特别精选论文阅读笔记,开辟“源头活水”专栏,帮助你广泛而深入的阅读科研文献,敬请关注。
马上科普尚尚
2021/04/07
8220
【源头活水】一种高效评估预训练模型是否适合当前任务的方法
Java中抽象类和接口中可以有构造方法吗?
Java中抽象类和接口中可以有构造方法吗? -----------------------------------------------------------------------------
黑泽君
2018/10/11
2K0

相似问题

在AWS EC2免费层帐户上安装码头

13

AWS免费层上的Windows和Linux同时EC2实例

12

如何在AWS免费层上安装Laravel?

20

EC2的AWS免费层限制

16

无法在AWS免费层中启动第二个实例实例

13
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文