|
|
|
| Работаю с Wordpress.
Значит, есть функция
global $wpdb;
$ppbv_tablename = $wpdb->prefix.'popular_by_views';
function ppbv_create_table(){
$ppbv_table = $wpdb->get_results("SHOW TABLES LIKE '{$ppbv_tablename}'" , ARRAY_N);
if(empty($ppbv_table)){
$create_table_sql = "CREATE TABLE {$ppbv_tablename} (
id BIGINT(50) NOT NULL AUTO_INCREMENT,
post_id VARCHAR(255) NOT NULL,
views BIGINT(50) NOT NULL,
PRIMARY KEY (id),
UNIQUE (id)
)";
$wpdb->query($create_table_sql);
$wpdb->flush();
}
}
add_action('init', 'ppbv_create_table');
|
она должна проверять наличие таблицы, и если её нет, то создавать.
НО почему-то она не работает..
Что я не так прописываю..
ПС функция стандартная, можете опробовать её - просто вставив код в functions.php - По задумке, должна появиться таблица wp_popular_by_views
Буду очень признателен за помощь.. ибо всю голову сломал.. | |
|
|
|
|
|
|
|
для: naikom
(17.12.2010 в 21:33)
| | Окончательные тексты запросов как выглядят?
Не знаю как там в wp, но с точки зрения формального кода php я вижу неопределенные переменные.
BIGINT(50) порвало :) | |
|
|
|
|
|
|
|
для: Trianon
(17.12.2010 в 21:44)
| | что значит неопределённые переменные?
а что такого в BIGINT(50)? | |
|
|
|
|
|
|
|
для: naikom
(17.12.2010 в 22:22)
| | неопределенные переменные - переменные, которым не присвоено никакого значения перед их использованием.
например в функции
function ppbv_create_table(){
$ppbv_table = $wpdb->get_results("SHOW TABLES LIKE '{$ppbv_tablename}'" , ARRAY_N);
if(empty($ppbv_table)){
$create_table_sql = "CREATE TABLE {$ppbv_tablename} (
id BIGINT(50) NOT NULL AUTO_INCREMENT,
post_id VARCHAR(255) NOT NULL,
views BIGINT(50) NOT NULL,
PRIMARY KEY (id),
UNIQUE (id)
)";
$wpdb->query($create_table_sql);
$wpdb->flush();
}
}
|
я вижу две таких переменных - $ppbv_tablename и $wpdb
это локальные переменные данной функции
это не её формальные параметры - на входе не передаются
и значения их нигде не заданы.
им не присваивается значений
BIGINT - 64-битовое целое. Хранит около 19 десятичных цифр. Никак не 50. | |
|
|
|
|
|
|
|
для: Trianon
(17.12.2010 в 23:28)
| | $ppbv_tablename и $wpdb по умолчанию движком задаются | |
|
|
|
|
|
|
|
для: naikom
(17.12.2010 в 23:46)
| | Я поэтому и написал, про wp ничего не знаю.
НО если это код на php - нету и не может быть внутри тела функции никаких умолчаний.
Если вход некоего препроцессора - может быть всё что угодно.
Но полагаясь на свой опыт скажу, что препроцессорный код так не строят. | |
|
|
|