大家好,我正在尝试创建一个页面,以便从php页面创建数据库。但是在运行页面然后创建Mysql数据库时,浏览器向我返回此错误:
您的SQL语法有错误;使用新的权利 服务器的版本。
我将代码作为MyISAM引擎而不是MariaDB(或AIR)输入,所以我不理解问题,因为我从XAMPP的控制面板检查了细节,而我仍然使用的版本在MyISAM引擎中。
我将我使用的代码复制给所有想帮助我的人。
< $db = mysql_connect('localhost', 'admin', 'pizzaballa') or die
('Non è possibile connettersi. Controllare i parametri di
connessione.');
$query = 'CREATE DATABASE IF NOT EXISTS moviesite';
mysql_query($query, $db) or die(mysql_error($db));
mysql_select_db('moviesite', $db) or die(mysql_error($db));
$query = 'CREATE TABLE movie ( movie_id INTEGER UNSIGNED NOT NULL
AUTO_INCRMENT, 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'; mysql_query($query, $db) or die (mysql_error($db));
$query = 'CREATE TABLE movietype ( movietype_id TINYINT UNSIGNED NOT
NULL AUTO_INCREMENT, movietype_label VARCHAR (100) NOT NULL, PRIMARY
KEY (movietype_id) ) ENGINE=MyISAM'; mysql_query($query, $db) or die
(mysql_error($db));
$query = 'CREATE TABLE people ( people_id INTEGER UNSIGNED NOT NULL
AUTO_INCREMENT, people_fullname VARCHAR (255) NOT NULL, people_isactor
TINYINT(1) UNSIGNED NOT NULL DEFAULT 0, people_isdirector TYNIINT(1)
UNSIGNED NOT NULL DEFAULT 0,
PRIMARY KEY (people_id) ) ENGINE=MyISAM'; mysql_query($query, $db) or
die (mysql_error($db));
echo 'Database movie creato correttamente!';
答案 0 :(得分:0)
CREATE TABLE people ( people_id INTEGER UNSIGNED NOT NULL
AUTO_INCREMENT, people_fullname VARCHAR (255) NOT NULL, people_isactor
TINYINT(1) UNSIGNED NOT NULL DEFAULT 0, people_isdirector TYNIINT(1)
UNSIGNED NOT NULL DEFAULT 0,
PRIMARY KEY (people_id) ) ENGINE=MyISAM
TYNIINT 是无效的列类型。应该将其更正为 TINYINT 。
完整的错误消息应该让您大致了解错误的来源。如果不是这样,将您的查询粘贴到任何带有语法着色的SQL编辑器中也可能很有用。
答案 1 :(得分:0)
“您的SQL语法有误;” -很清楚。这些mysql_query
语句之一在SQL中出现错误。
1)始终将此类代码包装在try
和hellip中; catch
。阅读this
2)使用IDE(例如[Eclipse] 9https://www.eclipse.org/pdt/,但还有其他),并学习使用调试器。它是您拥有的最强大的工具。您可以设置一个断点,让代码运行,它将在此处停止。然后,您可以检查变量和调用堆栈,并逐行逐步执行代码,直到对错误进行编码为止。
这两个问题不仅可以回答这个问题,还可以回答您将来会问到的更多问题,但是现在您可以回答自己了。