Вот ошибка, с которой у меня проблемы. Это происходит, когда я использую функцию dbDelta в Wordpress. Я не могу понять это, возможно, кто-то еще испытал нечто подобное? Мой код:
$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";
Я запускаю этот код во время действия 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
В случае, если я неправильно понял dbDelta, я должен добавить, что приведенный выше код выполняется несколько раз ... так что таблица уже существует. Но если я понимаю dbDelta, это означает, что он просто не должен ничего делать, потому что в структуре db нет ничего, что нужно менять.