2016-07-20 72 views
0

我写过这段代码,但仍然无法在数据库中创建表。并且输出结果为:表无法创建

“数据库已创建...对不起表格”。

<?php         
    include 'connection.php'; 
    //Creating database 
    $creatingdatabase = "CREATE DATABASE IF NOT EXISTS quest"; 
    $query1 = mysqli_query($con, $creatingdatabase); 
    if($query1){ 

     echo "database created...."; 
     //creating tables 
     $creatingtable = "CREATE TABLE quiz (
         id INT(6) AUTO_INCREMENT PRIMARY KEY, 
         questions VARCHAR(255) NOT NULL, 
         optiona VARCHAR(255) NOT NULL, 
         optionb VARCHAR(255) NOT NULL, 
         optionc VARCHAR(255) NOT NULL, 
         optiond VARCHAR(255) NOT NULL, 
         answer VARCHAR(50) NOT NULL 
               )"; 
     $query2 = mysqli_query($con, $creatingtable); 
     if($query2){echo "table created...";} 
     else { echo "sorry... table not created"; } 

    } 
    else { echo "database can not be created"; } 
?> 

This is the output as seen in the browser.

+1

更改'else {echo“sorry ... table not created”; }'to'else {echo“sorry ... table not created:”。mysqli_error($ con); }'这样我们可以看到错误:) – DiceXQ

回答

0

CREATE TABLE语句需要指定要使用的数据库,或者需要使用mysqli_select_db()来设置默认数据库。

$creatingdatabase = "CREATE DATABASE IF NOT EXISTS quest"; 
$query1 = mysqli_query($con, $creatingdatabase); 
mysqli_select_db($con, "quest"); 
0
<?php 
$servername = 'localhost'; 
$username = 'root'; 
$password = 'xxxxx'; 

$conn = new mysqli($servername, $username, $password); 
if ($conn->connect_error) { 
    die("Connection failed: " . $conn->connect_error); 
} 
// Create database 
$sql = "CREATE DATABASE guest"; //Set name database here 
if ($conn->query($sql) === TRUE) { 
    $conn = mysqli_connect($servername, $username, $password,'guest');//Set name database here 
    if ($conn->connect_error) { 
     die("Connection failed: " . $conn->connect_error); 
    } 
    $query = "CREATE TABLE quiz (
     id INT(6) AUTO_INCREMENT PRIMARY KEY, 
     questions VARCHAR(255) NOT NULL, 
     optiona VARCHAR(255) NOT NULL, 
     optionb VARCHAR(255) NOT NULL, 
     optionc VARCHAR(255) NOT NULL, 
     optiond VARCHAR(255) NOT NULL, 
     answer VARCHAR(50) NOT NULL 
    )"; 
    if ($conn->query($query) === TRUE) { 
     echo "Table users created successfully"; 
    } else { 
     echo "Error creating table: " . $conn->error; 
    } 
} else { 
    echo "Error creating database: " . $conn->error; 
} 

$conn->close(); 
?> 

但我不建议用户可以在你的SQL Server创建新的数据库。

就安全性而言,最好是已经创建了一个数据库,然后只需添加用户数据即使它是第一条记录。用户无法将数据输入到Web表单中,然后间接运行SQL代码,从而无法获得任何信息。