Страница 1 из 1

Вопрос по SQL и созданию базы данных

Добавлено: 2006-06-12 22:55:29
Enpi
Пробую на своем компьютере установить какой-либо форум. Для примера взял Ubbthreads 6.5.
В общем столкнулся с такой проблемкой.

В файле createtable.php есть вызовы SQL-функций для создания соответствующих таблиц. Например, создание таблицы w3t_Users выглядит частью так:


code:
// Create the User Table
$query = "
CREATE TABLE {$config['tbprefix']}Users(
<...>
U_Categories VARCHAR(255) DEFAULT '-',
U_Banned INT(1) DEFAULT '0',
U_CoppaUser INT(1) UNSIGNED DEFAULT '0',
U_Birthday VARCHAR(10) NOT NULL DEFAULT '0',
U_ShowBday INT(1) NOT NULL DEFAULT '0',
U_TimeFormat VARCHAR(6),
U_Ignored TEXT,
U_OC_Userid VARCHAR(64),
U_LastPostTime INT(11) unsigned,
<...>
U_ProfileHash VARCHAR(32)
$indexes
)";
$dbh -> do_query ($query);
echo "Users table created...<br>";




В другом файле, ubbt.inc.php используются функции извлечения информации из соответсвующей таблицы:



code:
if ($Query != "*") {
if ($Query) { $Query .=","; }
$Query .= "U_Username, U_Password, U_SessionId,
U_StyleSheet, U_Status, U_Privates, U_FrontPage, U_Number, U_Banned, U_LastOn, U_OC_Userid";
}
$Uid = addslashes(${$config['cookieprefix']."w3t_myid"});

$query = "SELECT $Query FROM {$config['tbprefix']}Users WHERE U_Number = '$Uid'";
$sth = $dbh -> do_query($query,__LINE__,__FILE__);
$thisuser = $dbh -> fetch_array($sth);
$dbh -> finish_sth($query);



И в момент запуска форума появляется ошибка MySQL: SQL Error: Unknown column 'U_Banned' in 'field list'

Но объясните мне пожалуйста, как такое может быть, если столбец U_Banned задается в таблицу в самом начале, как SQL может писать, что его не существует в этой таблице???

Добавлено: 2006-06-12 23:22:23
Alex Keda
не самый лучший выбор...
phpBB2 чем не устраивает?

Добавлено: 2006-06-13 7:12:58
Enpi
Все, вопрос закрыт. Починил!!! :D

Просто поставил mysql-administrator и через графический интерфейс вручную отредактировал все таблицы, в которых чего-то недоставало. Иначе бы я точно не справился.

Добавлено: 2006-06-14 16:33:53
zorg
Вообще когда приходится вот так вот подлатывать, по-моемому это не лучший вариант!!!
Я бы предпочёл разобраться, из-за чего такое возникает, а если не удаётся, то поискал бы чего нить без таких ошибок.! :) но это моё мнение.