PHP脚本未创建mysql数据库和表

时间:2019-06-26 08:24:29

标签: php mysqli

我正在尝试使用PHP和MySQL创建一个电子商务购物车,但是PHP代码没有创建数据库和表。

我目前正在观看有关如何执行此操作的youtube视频,并且已逐字母复制了代码,但似乎根本无法正常工作。

<?php

class CreateDb
{
        public $servername;
        public $username;
        public $password;
        public $dbname;
        public $tablename;
        public $con;


        // Class constructor
    public function __construct(
        $dbname = "NewDB",
        $tablename = "Productdb",
        $servername = "localhost",
        $username = "root",
        $password = "root"
    )
    {
      $this->dbname = $dbname;
      $this->tablename = $tablename;
      $this->servername = $servername;
      $this->username = $username;
      $this->password = $password;

      // Create connection
        $this->con = mysqli_connect($servername, $username, $password);

        // Check connection
        if (!$this->con){
            die("Connection failed : " . mysqli_connect_error());
        }

        // Query
        $sql = "CREATE DATABASE $dbname";

        // Execute query
        if(mysqli_query($this->con, $sql)){

            $this->con = mysqli_connect($servername, $username, $password, $dbname);

            // SQL to create new table
            $sql = " CREATE TABLE $tablename
                            (ID INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
                             ProductName VARCHAR (25) NOT NULL,
                             ProductPrice FLOAT,
                             ProductImage VARCHAR (100)
                            );";

            if (!mysqli_query($this->con, $sql)){
                echo "Error creating table : " . mysqli_error($this->con);
            }

        }else{
            return false;
        }
    }

}

在Mamp上加载屏幕时,应该创建数据库-至少,这就是youtube上的那个家伙所做的。没有显示错误,只是未在Mamp上创建数据库。

3 个答案:

答案 0 :(得分:3)

查询中不需要;

https://www.w3schools.com/php/php_mysql_create_table.asp

https://www.w3schools.com/php/php_mysql_create.asp

使用mysqli_error($conn);进行调试。

您的用户可能没有足够的权限。

答案 1 :(得分:0)

$sql = "CREATE DATABASE $dbname";中没有分号

答案 2 :(得分:0)

$sql = "CREATE DATABASE $dbname"; 

应该是这样

$sql = "CREATE DATABASE $dbname;";

您缺少;用于SQL。最后;用于PHP编码。