2014-01-28 2 views
0
<?php 

    $db_host = "localhost"; 
    $db_username = "root"; 
    $db_pass = ""; 
    $db_name = "onlinestores"; 

     // Run the actual connection here 
    $connect_dude=mysqli_connect("$db_host","$db_username","$db_pass","$db_name"); 


    if (mysqli_connect_errno()) { 
    printf("Connect failed: %s\n", mysqli_connect_error()); 
    exit(); 
    } 
    ?> 

    //creating table 
    <?php 
    include "connect_to_db.php"; 
    $sql_command="CREATE TABLE admin(
     id NOT NULL auto_increment, 
     username varchar(16) NOT NULL, 
     password varchar(16) NOT NULL, 
     last_login date NOT NULL, 
     PRIMARY KEY(id), 
     UNIQUE KEY username(username) 
     )"; 
    if(mysqli_query($connect_dude,"$sql_command")){ 
    echo "ookie dookie"; 
    }else { 
    echo "it didn't work"; 
    } 
    ?> 

Код не создает таблицу в базе данных и показывает, что выражение echo «не работает».Таблица create from PHP failed

+0

* sidenote: * зачем вам нужны двойные кавычки в 'mysqli_connect()' и 'mysqli_query()'? – Raptor

+0

База данных существует? – flauntster

+0

Имеет ли учетная запись, к которой вы использовали для входа, разрешение 'CREATE'? – Raptor

ответ

2

Ваш SQL имеет синтаксические ошибки.

  • id колонка пропускает int
  • UNIQUE KEY username(username) должен быть UNIQUE KEY(username)

Попробуйте это:

$sql_command = "CREATE TABLE admin 
(id int NOT NULL auto_increment, 
username varchar(16) NOT NULL, 
password varchar(16) NOT NULL, 
last_login date NOT NULL, 
PRIMARY KEY(id), 
UNIQUE KEY(username))"; 

Чтобы поймать ошибки в MySQL вызовов используйте mysqli_error()

else { 
    echo "it didn't work because: " . mysqli_error($connect_dude); 
} 
+0

Большое вам спасибо, босс.Я ценю много. – user2943607

0

заменить код:

$db_host = "localhost"; 
    $db_username = "root"; 
    $db_pass = ""; 
    $db_name = "onlinestores"; 

     // Run the actual connection here 
    $connect_dude=mysqli_connect("$db_host","$db_username","$db_pass","$db_name"); 


    if (mysqli_connect_errno()) { 
    printf("Connect failed: %s\n", mysqli_connect_error()); 
    exit(); 
    } 
    ?> 

    //creating table 
    <?php 
    include "connect_to_db.php"; 
    $sql_command="CREATE TABLE admin(
     id int NOT NULL auto_increment, 
     username varchar(16) NOT NULL, 
     password varchar(16) NOT NULL, 
     last_login date NOT NULL, 
     PRIMARY KEY(id), 
     UNIQUE KEY username(username) 
     )"; 
    if(mysqli_query($connect_dude,"$sql_command")){ 
    echo "ookie dookie"; 
    }else { 
    echo "it didn't work"; 
    } 
    ?> 
+0

Это не влияет на результат. Переменные в двойных кавычках будут проанализированы и заменены. – Raptor

+0

i обновить код проверить его @ user2943607 – Guru

1

Попробуйте, как это, убедитесь, что у вас есть правильные имена переменных перед нажатием на код производства,

connect_to_db.php файл:

<?php 
    $db_host = "localhost"; 
    $db_username = "root"; 
    $db_pass = ""; 
    $db_name = "onlinestores"; 

    // Run the actual connection here 
    $mysqli=mysqli_connect($db_host, $db_username, $db_pass, $db_name); 

    if ($mysqli->connect_errno) { 
    printf("Connect failed: %s\n", $mysqli->connect_error); 
    exit(); 
    } 
?> 

create_table.php файл:

<?php 
    include "connect_to_db.php"; 

    $sql_command="CREATE TABLE admin(
    id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, 
    username VARCHAR(16) NOT NULL UNIQUE KEY, 
    pass VARCHAR(16) NOT NULL, 
    last_login DATE NOT NULL 
)"; 

    if($mysqli->query($sql_command) === TRUE) 
    echo "ookie dookie"; 
    else 
    echo "it didn't work"; 
?>