Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 无法在数据库中创建表_Php_Sql_Database - Fatal编程技术网

Php 无法在数据库中创建表

Php 无法在数据库中创建表,php,sql,database,Php,Sql,Database,我正在用PHP编写一个简单的表单,获取输入并将其插入数据库,我成功地创建了一个数据库,但没有创建一个表。我对数据库使用Xampp。 以下是我创建表的代码: mysqli_select_db($DBconnect, $DBname); $TableName = "Bugtrack"; $SQLstring = "SHOW TABLES LIKE ' " . $TableName . "' "; if ($stmt = mysqli_prepare(

我正在用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);
                }
            }
        }
mysqli_select_db($DBconnect,$DBname); $TableName=“错误跟踪”; $SQLstring=“显示类似“”的表$表名。"' "; 如果($stmt=mysqli\u prepare($DBconnect,$SQLstring)){ mysqli_stmt_execute($stmt); mysqli_stmt_store_结果($stmt); 如果(mysqli_stmt_num_rows($stmt)==0){ mysqli_stmt_close($stmt); $SQLstring=“创建表”。$TableName。”(BugID SMALLINT .非空自动增量主键, .Game VARCHAR(10),Version VARCHAR(5), 平台VARCHAR(10),频率VARCHAR(5), 建议的解决方案(TINYTEXT)”; 如果($stmt=mysqli\u prepare($DBconnect,$SQLstring)){ $QueryResult=mysqli\u stmt\u execute($stmt); if($QueryResult==FALSE){ echo“无法创建表。

” .“错误代码” .mysqli_errno($DBConnect) .mysqli_错误($DBConnect) .“

”; } mysqli_stmt_close($stmt); } } }
尝试回显$SQLstring并在mysql控制台中运行查询。它将为您指出查询的确切问题

  • 将此行修改为
    $SQLstring=“CREATE TABLE”$表名。“(BugID SMALLINT
    $SQLstring=“CREATE TABLE”。$TableName。”(BugID SMALLINT

  • 如果不存在(BugID SMALLINT


  • 如果您使用的是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);
    


    转到localhost/phpmyadmin,单击左侧的数据库。您将看到一个创建表的选项。我还将确保您对所创建的数据库具有权限。要做到这一点,当您在phpmyadmin中时,单击您的数据库,选择几乎位于页面顶部的特权选项卡。从那里只需执行以下操作:查看提示。

    我认为这是因为句点位于
    创建表中的
    内。这将创建无效查询
    mysqli\u错误的输出可能会给您一个关于问题根源的强烈提示。您是否尝试过
    ”“$TABLE\u name.”“
    ”,并尝试在
    表中留出空间“
    我认为这也会导致错误