2016-07-20 29 views
0

私はこのコードを書いていますが、データベースにテーブルを作成することはできません。そして、出力は次のとおりです。テーブルを作成できません

"データベースが作成されました:Sorry Table Not Created"

<?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"を変更してください。 mysqli_error($ con);} 'else' {echo "sorry ...テーブルが作成されていません。 } 'エラーが表示されるように:) – 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コードを実行することはできません。

関連する問題