Вопрос по SQL и созданию базы данных
Добавлено: 2006-06-12 22:55:29
Пробую на своем компьютере установить какой-либо форум. Для примера взял 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 может писать, что его не существует в этой таблице???
В общем столкнулся с такой проблемкой.
В файле 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 может писать, что его не существует в этой таблице???