这是我正在制作的剧本之一,但我无法弄清楚是什么错。
$dbhost = "localhost";
$dbusername = "root";
$dbpassword = "";
$dbname = "str_academy";
$connect = mysqli_connect("$dbhost", "$dbusername", "$dbpassword");
if (!$connect) {
echo("<div class='container'>");
echo("<div class='alert alert-danger'><strong>Warning! </strong>Couldn't create the specified database</div>");
echo("</div>");;
exit();
}else {
echo("<div class='container'>");
echo("<div class='alert alert-success'><strong>Success! </strong>Database connection established successfully</div>");
echo("</div>");;
}
if ($connect) {
$database_create = 'CREATE DATABASE str_academy';
$database_query = mysqli_query($connect, $database_create);
if (!$database_query) {
echo("<div class='container'>");
echo("<div class='alert alert-danger'><strong>Warning! </strong>Couldn't create the specified database</div>");
echo("</div>");
exit();
}else {
echo("<div class='container'>");
echo("<div class='alert alert-success'><strong>Success! </strong>Database : str_academy successfully created</div>");
echo("</div>");
}
}
$database_select = mysqli_select_db($connect, "str_academy");
if (!$database_select) {
echo "Select a database first";
}else {
echo "Database Selected";
}
$contact_table_create = "CREATE TABLE contact_information (
contact_id INT NOT NULL AUTO_INCREMENT,
contact_name VARCHAR(255) NOT NULL,
contact_email TEXT NOT NULL,
phonenumber INT(11) REAL NULL,
message TEXT NOT NULL,
PRIMARY KEY(contact_id)
)";
$contact_table_query = mysqli_query($connect, $contact_table_create);
if (!$contact_table_query) {
echo "Table not created";
}else {
echo "Table created";
}
?>
我已经创建了这个简单的测试脚本。除了没有创建表contact_information之外,一切似乎都运行得很好。任何人都可以帮我解决这个问题吗?
答案 0 :(得分:1)
此上下文中使用的关键字REAL
引发语法错误:
您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,以获得在&#39; REAL NULL附近使用的正确语法, 消息TEXT NOT NULL, PRIMARY KEY(contact_id) )&#39;在第5行
从查询中删除REAL
(并在必要时将其替换为其他内容)可以解决您遇到的问题。
答案 1 :(得分:1)
将phonenumber INT(11) REAL NULL,
更改为phonenumber INT(11) NOT NULL,
并查看其是否有效
答案 2 :(得分:0)
在phpmyadmin / innoDb中REAL变为double,所以我认为你需要替换REAL
double DEFAULT
。您的查询将如下:
CREATE TABLE contact_information (
contact_id INT NOT NULL AUTO_INCREMENT,
contact_name VARCHAR(255) NOT NULL,
contact_email TEXT NOT NULL,
phonenumber double DEFAULT NULL,
message TEXT NOT NULL,
PRIMARY KEY(contact_id)
)
答案 3 :(得分:0)
错误位于phonenumber INT(11) REAL NULL
列。这应该是phonenumber INT(11) NOT NULL
答案 4 :(得分:-1)
输出mysqli错误消息。我怀疑用户&#34; root&#34;可能没有CREATE DATABASE
权限。
if (!$database_query) {
$error = mysqli_error($connect);
echo("<div class='container'>");
echo("<div class='alert alert-danger'>{$error}</div>");
}