0

このクエリに問題があります。

 $query = 'CREATE TABLE movie(
    movie_id UNSIGNED INTEGER NOT NULL AUTO_INCREMENT,
    movie_name VARCHAR(255) NOT NULL,
    movie_type TINYINT NOT NULL DEFAULT 0,
    movie_year SMALLINT UNSIGNED NOT NULL DEFAULT 0,
    movie_leadactor INTEGER UNSIGNED NOT NULL DEFAULT 0,
    movie_director INTEGER UNSIGNED NOT NULL DEFAULT 0,

    PRIMARY KEY (movie_id),
    KEY movie_type (movie_type, movie_year)
    )
    ENGINE=MyISAM';
 $result = mysql_query($query, $db) or die(mysql_error($db));

それはまだこれを書きます:

SQL構文にエラーがあります。2行目の「UNSIGNEDINTEGERNOTNULL AUTO_INCREMENT、movie_name VARCHAR(255)NOT NULL」の近くで使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください。

4

3 に答える 3

3

unsignedはintの後に来る必要があります。クエリを書き直して、機能することを確認しました。

CREATE TABLE movie(
movie_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
movie_name VARCHAR(255) NOT NULL,
movie_type TINYINT NOT NULL DEFAULT 0,
movie_year SMALLINT UNSIGNED NOT NULL DEFAULT 0,
movie_leadactor INT UNSIGNED NOT NULL DEFAULT 0,
movie_director INT UNSIGNED NOT NULL DEFAULT 0,
PRIMARY KEY (movie_id),
KEY movie_type (movie_type, movie_year)
)
ENGINE=MyISAM
于 2012-11-19T20:11:16.787 に答える
0

これを試してください。INTEGERはINTと書くことができ、その前にUNSIGNED変数を置くと、後に続く必要があります-

$query = 'CREATE TABLE movie(
`movie_id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`movie_name` VARCHAR(255) NOT NULL,
`movie_type` TINYINT NOT NULL DEFAULT 0,
`movie_year` SMALLINT UNSIGNED NOT NULL DEFAULT 0,
`movie_leadactor` INTEGER UNSIGNED NOT NULL DEFAULT 0,
`movie_director` INTEGER UNSIGNED NOT NULL DEFAULT 0,

PRIMARY KEY (movie_id),
KEY movie_type (movie_type, movie_year)
)
ENGINE=MyISAM';
$result = mysql_query($query, $db) or die(mysql_error($db));
于 2012-11-19T20:12:06.957 に答える
0

MySQLの整数型はINT、ではなくと呼ばれINTEGERます。

于 2012-11-19T20:09:36.957 に答える