0

I trying to running this code:

<?php

define('HOST', 'localhost');
define('USERNAME', 'root');
define('PASSWORD', '');
define('DATABASE', 'mydb');

$mysqli = new mysqli(HOST, USERNAME, PASSWORD, DATABASE);
$query = "SHOW TABLES LIKE 'users'";
$result = $mysqli->query($query);

if ($result->num_rows == 0) {
    $query = "CREATE TABLE users (id INT UNSIGNED NOT NULL AUTO_INCREMENT, username VARCHAR(50) NOT NULL, password VARCHAR(100) NULL, name VARCHAR(50) NULL, phone VARCHAR(50) NULL, active BOOLEAN NOT NULL, PRIMARY KEY (id), UNIQUE (username)) ENGINE = MyISAM";

    if ($mysqli->query($query)) {
        $query = "INSERT INTO users (id, username, password, name, phone, active) VALUES (1, admin, 321, idan, 123456789, 1), (2, guest, NULL, NULL, NULL, 1)";

        if ($mysqli->query($query)) {
            echo 'BOTH table & data created!';
        }
        else {
            echo 'ONLY table created!';
        }
    }
    else {
        echo 'NOTHING created!';
    }
}
else {
    echo 'users table are exists!';
}

$result->free();
$mysqli->close();

?>

while users table are not exiest, it's echo 'ONLY table created!' but it's should be echo 'BOTH table & data created!', Can someone help me to fix it?

EDIT:

for other people that will have the same problem, that what fix it: (thanks to u_mulder)

$query = "INSERT INTO users (id, username, password, name, phone, active) VALUES (1, 'admin', '321', 'idan', '123456789', 1), (2, 'guest', NULL, NULL, NULL, 1)";
Idan Hazan
  • 116
  • 9

1 Answers1

0
Use quotes in your values, try this, it works fine

<?php

define('HOST', 'localhost');
define('USERNAME', 'root');
define('PASSWORD', '');
define('DATABASE', 'mydb');

$mysqli = new mysqli(HOST, USERNAME, PASSWORD, DATABASE);
$query = "SHOW TABLES LIKE 'users'";
$result = $mysqli->query($query);

if ($result->num_rows == 0) {
    $query = "CREATE TABLE users (id INT UNSIGNED NOT NULL AUTO_INCREMENT, username VARCHAR(50) NOT NULL, password VARCHAR(100) NULL, name VARCHAR(50) NULL, phone VARCHAR(50) NULL, active BOOLEAN NOT NULL, PRIMARY KEY (id), UNIQUE (username)) ENGINE = MyISAM";

    if ($mysqli->query($query)) {
        $query = "INSERT INTO users (id, username, password, name, phone, active) VALUES ('1', 'admin', '321', 'idan', '123456789', '1'), ('2', 'guest', 'NULL', 'NULL', 'NULL', '1')";

        if ($mysqli->query($query)) {
            echo 'BOTH table & data created!';
        }
        else {
            echo 'ONLY table created!';
        }
    }
    else {
        echo 'NOTHING created!';
    }
}
else {
    echo 'users table are exists!';
}

$result->free();
$mysqli->close();

?>
User2403
  • 317
  • 1
  • 5