Невозможно создать таблицу в базе данных - PullRequest
0 голосов
/ 01 июня 2018

Я пишу простую форму в PHP, которая получает данные и вставляет их в базу данных. Мне удалось создать базу данных, но не таблицу.Я использую Xampp для базы данных.Вот мой код для создания таблицы:

 mysqli_select_db($DBconnect, $DBname);
        $TableName = "Bugtrack";
        $SQLstring = "SHOW TABLES LIKE ' " . $TableName . "' ";
        if ($stmt = mysqli_prepare($DBconnect, $SQLstring)) {
            mysqli_stmt_execute($stmt);
            mysqli_stmt_store_result($stmt);
            if (mysqli_stmt_num_rows($stmt) == 0) {
                mysqli_stmt_close($stmt);
                $SQLstring = "CREATE TABLE" . $TableName . "(BugID SMALLINT 
                        . NOT NULL AUTO_INCREMENT PRIMARY KEY,
                        . Game VARCHAR(10), Version VARCHAR(5),
                          Platform VARCHAR(10), Frequency VARCHAR(5), 
                          proposed_solution TINYTEXT)";
                if ($stmt = mysqli_prepare($DBconnect, $SQLstring)) {
                    $QueryResult = mysqli_stmt_execute($stmt);
                    if ($QueryResult === FALSE) {
                        echo "<p>Unable to create the table.</p>"
                        . "<p>Error code "
                        . mysqli_errno($DBConnect)
                        . ": " . mysqli_error($DBConnect)
                        . "</p>";
                    }
                    mysqli_stmt_close($stmt);
                }
            }
        }

Ответы [ 3 ]

0 голосов
/ 01 июня 2018
  1. Измените эту строку на $SQLstring = "CREATE TABLE" . $TableName . "(BugID SMALLINT на $SQLstring = "CREATE TABLE " . $TableName . " (BugID SMALLINT

  2. Вместо проверки $SQLstring = "SHOW TABLES LIKE ' " . $TableName . "' "; вы можете проверить это как $SQLstring = "CREATE TABLE " . $TableName . " if not exists (BugID SMALLINT

0 голосов
/ 01 июня 2018

Если вы используете XAMPP, перейдите в localhost / phpmyadmin с помощью веб-браузера.Выберите базу данных, затем выберите sql.

Для создания таблицы.

CREATE TABLE Bugtrack (
BugID INT(8) NOT NULL AUTO_INCREMENT PRIMARY KEY,
Game VARCHAR(10), Version VARCHAR(5),
Platform VARCHAR(10), 
Frequency VARCHAR(5), 
proposed_solution TINYTEXT
)

Если вы действительно хотите сделать это с помощью php.Я бы использовал PDO.

$username = 'me';
$password = 'my_super_secret_password';
$dsn = 'mysql:host=localhost;dbname=my_database';

$conn = new PDO($dsn, $username, $password);

$sql = 'CREATE TABLE Bugtrack (
BugID INT(8) NOT NULL AUTO_INCREMENT PRIMARY KEY,
Game VARCHAR(10), Version VARCHAR(5),
Platform VARCHAR(10), 
Frequency VARCHAR(5), 
proposed_solution TINYTEXT
)';

$conn->execute($sql);

ИЛИ

Перейдите в localhost / phpmyadmin, щелкните по вашей базе данных с левой стороны.Вы увидите вариант для создания таблицы.Я также хотел бы убедиться, что у вас есть разрешение для базы данных, которую вы создали.Для этого, пока вы находитесь в phpmyadmin, щелкните по вашей базе данных, выберите вкладку привилегий, которая находится почти вверху страницы.Оттуда просто следуйте инструкциям.

0 голосов
/ 01 июня 2018

Попробуйте повторить запрос $ SQLstring и запустить запрос в консоли mysql.Это укажет вам на точную проблему с вашим запросом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...