无法在数据库中创建表

时间:2018-06-01 03:01:24

标签: php sql database

我在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 :(得分:1)

尝试回显$ SQLstring并在mysql控制台中运行查询。它将指出您的查询的确切问题。

答案 1 :(得分:0)

  1. 将此行修改为$SQLstring = "CREATE TABLE" . $TableName . "(BugID SMALLINT$SQLstring = "CREATE TABLE " . $TableName . " (BugID SMALLINT

  2. 您可以检查$SQLstring = "SHOW TABLES LIKE ' " . $TableName . "' ";

  3. ,而不是检查$SQLstring = "CREATE TABLE " . $TableName . " if not exists (BugID SMALLINT

答案 2 :(得分:0)

如果您使用的是XAMPP,请使用您的webbrowser转到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);

OR

转到localhost / phpmyadmin,单击左侧的数据库。您将看到创建表的选项。我还要确保您拥有自己创建的数据库的权限。为此,当您在phpmyadmin中时,单击您的数据库,选择几乎位于页面顶部的权限选项卡。从那里只需按照提示进行操作。