[英]Issue creating a table with MySQL and PHP
我正在尝试在索引页面上创建一个数据库,如果不存在该数据库将自动创建一个数据库,然后将创建一个表并向其中添加数据。
我在创建表时遇到问题,它将始终返回:
无法创建表
它创建的数据库没有问题,只是导致问题的表。 有人知道我错了吗?
<?php
$servername = "localhost";
$username = "root";
$password = "admin";
$database = "jfitness";
// Create connection
$conn = mysqli_connect($servername, $username, $password);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
// Create database
$sql = "CREATE DATABASE IF NOT EXISTS '($database)'";
if (mysqli_query($conn, $sql)) {
echo "Database created successfully";
} else {
echo "Database already exists: " . mysqli_error($conn);
}
// make foo the current db
$db_selected = mysqli_select_db($conn, $database);
if (!$db_selected)
{
die ('Can\'t use database : ' . mysqli_error());
}
else
{
echo "Database Selected ";
}
// sql to create table
$sql = "CREATE TABLE customers( ".
"id INT NOT NULL AUTO_INCREMENT, ".
"name VARCHAR(40) NOT NULL, ".
"password VARCHAR(50) NOT NULL, ".
"email VARCHAR(50 NOT NULL), ".
"PRIMARY KEY ( id )); ";
$retval = mysqli_query($conn, $sql );
if(! $retval )
{
die('Could not create table: ' . mysqli_error());
}
echo "Table created successfully\n";
$sql = "INSERT INTO customers (username, password, email)
VALUES ('John', 'Doe', 'john@example.com')";
if ($conn->query($sql) === TRUE) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
mysqli_close($conn);
?>
在创建表内的长度声明之外NOT NULL
:
email VARCHAR(50 NOT NULL) // its inside the length
其次,您有一个列不匹配:
INSERT INTO customers (username, // username/name
name VARCHAR(40) NOT NULL
变成这样:
CREATE TABLE customers(
id INT NOT NULL AUTO_INCREMENT,
username VARCHAR(40) NOT NULL, // username not name
password VARCHAR(50) NOT NULL,
email VARCHAR(50) NOT NULL, // put it after that
PRIMARY KEY (`id`)
)
而且你有一个孤独的die('Could not create table: ' . mysql_error());
。 它不属于那里。
总而言之:
$servername = "localhost";
$username = "root";
$password = "admin";
$database = "jfitness";
// Create connection
$conn = mysqli_connect($servername, $username, $password);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
// Create database
$sql = "CREATE DATABASE IF NOT EXISTS $database";
if (mysqli_query($conn, $sql)) {
echo "Database created successfully <br/>";
} else {
echo "Database already exists: " . mysqli_error($conn);
}
// make foo the current db
$db_selected = mysqli_select_db($conn, $database);
if (!$db_selected)
{
die ('Can\'t use database : ' . mysqli_error($conn));
}
else
{
echo "Database Selected <br/>";
}
// sql to create table
$sql = "CREATE TABLE customers(
id INT NOT NULL AUTO_INCREMENT,
username VARCHAR(40) NOT NULL,
password VARCHAR(50) NOT NULL,
email VARCHAR(50) NOT NULL,
PRIMARY KEY (`id`)
)";
$retval = mysqli_query($conn, $sql );
if(! $retval ) {
die('Could not create table: ' . $conn->error);
}
echo "Table created successfully<br/>";
$sql = "INSERT INTO customers (username, password, email) VALUES ('John', 'Doe', 'john@example.com')";
if ($conn->query($sql) === TRUE) {
echo "New record created successfully <br/>";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
mysqli_close($conn);
读取以下内容:
email VARCHAR(50 NOT NULL)
并将其更改为:
email VARCHAR(50) NOT NULL
sql语句出错
在这一行:
"email VARCHAR(50 NOT NULL), ".
尝试这个:
"email VARCHAR(50) NOT NULL, ".
"email VARCHAR(50 NOT NULL), ".
应该
"email VARCHAR(50) NOT NULL, ".
您在定义电子邮件字段的表语法中存在语法错误。 您可以使用以下完整的解决方案来解决您的问题:
$servername = "localhost";
$username = "root";
$password = "admin";
$database = "jfitness";
// Create connection
$conn = mysqli_connect($servername, $username, $password);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
// Create database
$sql = "CREATE DATABASE IF NOT EXISTS $database";
if (mysqli_query($conn, $sql) === TRUE) {
echo "Database created successfully";
} else {
echo "Database already exists: " . mysqli_error($conn);
}
// make foo the current db
$db_selected = mysqli_select_db($conn, $database);
if (!$db_selected)
{
die ('Can\'t use database : ' . mysqli_error());
}
else
{
echo "Database Selected ";
}
// sql to create table
$sql = "CREATE TABLE customers( ".
"id INT NOT NULL AUTO_INCREMENT, ".
"username VARCHAR(40) NOT NULL, ".
"password VARCHAR(50) NOT NULL, ".
"email VARCHAR(50) NOT NULL, ".
"PRIMARY KEY ( id )); ";
$retval = mysqli_query($conn, $sql );
if(! $retval )
{
die('Could not create table: ' . mysql_error());
}
echo "Table created successfully\n";
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.