1

なぜ私がこれを得るのか分かりますか:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '``, `title` varchar(255) collate latin1_general_ci NOT NULL default ``,' at line 3

コードはこのようなものです(一部の問題があります...)

$sql = 'CREATE TABLE `forum` (
                        `postid` bigint(20) NOT NULL auto_increment,
                        `author` varchar(255) collate latin1_general_ci NOT NULL default ``,
                        `title` varchar(255) collate latin1_general_ci NOT NULL default ``,
                        `post` mediumtext collate latin1_general_ci NOT NULL,
                        `showtime` varchar(255) collate latin1_general_ci NOT NULL default ``,
                        `realtime` bigint(20) NOT NULL default `0`,
                        `lastposter` varchar(255) collate latin1_general_ci NOT NULL default ``,
                        `numreplies` bigint(20) NOT NULL default `0`,
                        `parentid` bigint(20) NOT NULL default `0`,
                        `lastrepliedto` bigint(20) NOT NULL default `0`,
                        `author_avatar` varchar(30) collate latin1_general_ci NOT NULL default `default`,
                        `type` varchar(2) collate latin1_general_ci NOT NULL default `1`,
                        `stick` varchar(6) collate latin1_general_ci NOT NULL default `0`,
                        `numtopics` bigint(20) NOT NULL default `0`,
                        `cat` bigint(20) NOT NULL,
                        PRIMARY KEY  (`postid`)
                        );';
                mysql_query($sql,$con) or die(mysql_error());

助けていただければ幸いです。

4

3 に答える 3

5
`author` varchar(255) collate latin1_general_ci NOT NULL default ``,

「著者」は列名であるため、バッククォートを使用する理由です。ただし、デフォルトの '' はであるため、バッククォートではなく引用符で囲む必要があります。

この場合、他のすべてのデフォルトについても同じことが言えます。

于 2010-04-05T20:52:51.793 に答える
3

文字列の引用符の代わりにバッククォートを使用しています。これを変える:

default ``

これに:

default ''

完全なステートメントは次のようになります。

CREATE TABLE `forum` (
                    `postid` bigint(20) NOT NULL auto_increment,
                    `author` varchar(255) collate latin1_general_ci NOT NULL default '',
                    `title` varchar(255) collate latin1_general_ci NOT NULL default '',
                    `post` mediumtext collate latin1_general_ci NOT NULL,
                    `showtime` varchar(255) collate latin1_general_ci NOT NULL default '',
                    `realtime` bigint(20) NOT NULL default '0',
                    `lastposter` varchar(255) collate latin1_general_ci NOT NULL default '',
                    `numreplies` bigint(20) NOT NULL default '0',
                    `parentid` bigint(20) NOT NULL default '0',
                    `lastrepliedto` bigint(20) NOT NULL default '0',
                    `author_avatar` varchar(30) collate latin1_general_ci NOT NULL default 'default',
                    `type` varchar(2) collate latin1_general_ci NOT NULL default '1',
                    `stick` varchar(6) collate latin1_general_ci NOT NULL default '0',
                    `numtopics` bigint(20) NOT NULL default '0',
                    `cat` bigint(20) NOT NULL,
                    PRIMARY KEY  (`postid`)
                    );
于 2010-04-05T20:52:39.217 に答える
0

回答ありがとうございます。以前に実際にこれを行ったことがありますが( ` の代わりに ' を入れました)、空白のページが表示されました....

私は自分の問題を理解しました。各 ' の前にバックスラッシュを付けるか、単に変更する必要がありました

$sql = 'CREATE TABLE `forum` (

$sql = "CREATE TABLE `forum` (

(引用符に注意してください)

とにかくありがとう、それは私がそれを理解するのを助けました!

于 2010-04-05T21:00:50.363 に答える