这是一个我遇到麻烦的错误.当我在Wordpress中使用dbDelta函数时会发生这种情况.我无法弄清楚,也许其他人有类似的经历?我的代码:
$sql1 = "CREATE TABLE `".$table_name1."` (
`id` INT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`blogid` INT( 11 ) NOT NULL ,
`symbol` VARCHAR( 255 ) NOT NULL
) ENGINE = MYISAM";
Run Code Online (Sandbox Code Playgroud)
我在theme_switch动作期间触发此代码.当我打开主题时,似乎没有发生,只有当我切换到别的东西时(我知道,这很奇怪).我已阅读并试图遵循Wordpress.org中提到的警告,例如在主键和定义之间放置两个空格.我还有另外两个类似的SQL代码生成相同的错误; 这三个最初都是由phpMyAdmin生成的,所以我知道它们有效.
Notice: Undefined offset: 1 in /Applications/MAMP/htdocs/wp-experiment/wp-admin/includes/upgrade.php on line 1463
Notice: Undefined offset: 1 in /Applications/MAMP/htdocs/wp-experiment/wp-admin/includes/upgrade.php on line 1463
Notice: Undefined offset: 1 in /Applications/MAMP/htdocs/wp-experiment/wp-admin/includes/upgrade.php on line 1463
WordPress database error: [Multiple primary key defined]
ALTER TABLE wp_stocks_0 CHANGE COLUMN id `id` INT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY
Warning: Cannot modify header information - headers already sent by (output started at /Applications/MAMP/htdocs/wp-experiment/wp-admin/includes/upgrade.php:1463) in /Applications/MAMP/htdocs/wp-experiment/wp-includes/pluggable.php on line 897
Run Code Online (Sandbox Code Playgroud)
如果我误解了dbDelta,我应该补充说,上面的代码执行了几次..所以表已经存在.但是如果我理解dbDelta,那意味着它根本不应该做什么,因为db结构中没有任何东西需要改变.
有点晚了 - 但在搜索相同错误消息的解决方案时发现了这个问题 - 我正在为发现此问题的其他人添加一个答案:
来自codex docs http://codex.wordpress.org/Creating_Tables_with_Plugins
- 您不得在字段名称周围使用任何撇号或反引号.
这为我解决了这个问题
| 归档时间: |
|
| 查看次数: |
2444 次 |
| 最近记录: |