使用PHP创建数据库和表

时间:2014-02-02 20:13:12

标签: php mysql

我正在创建一个db和table创建脚本。正在创建数据库,但表不是。当我将CREATE TABLE sql直接复制到phpMyAdmin时,它会成功插入。所以我不确定是什么问题。

function createdb() {
        include 'DbConnect.php';
        $qry = "CREATE DATABASE chinesegame2";       
        $sql = $mysqli->query($qry);

        $stats = "CREATE TABLE stats (
                    id_stats    INT(10) NOT NULL AUTO_INCREMENT,
                    PRIMARY KEY (id_stats),
                    id_user_fk  VARCHAR(30),
                    level       VARCHAR(255),
                    experience  INT(10),
                    item_a      INT(10),
                    item_b      INT(10),
                    item_c      INT(10)
                )";

        if ($mysqli->query($stats)) {echo "Table stats created successfully";}
        else { printf("Connect failed: %s\n", $mysqli->connect_error);}

   mysqli_close($mysqli);   

}

结果:已创建chinesegame2数据库,但未创建任何表。 $mysqli->connect_error仅提供“连接失败:”。

有什么想法?

由于

2 个答案:

答案 0 :(得分:1)

请看这里:http://www.w3schools.com/php/php_mysql_create.asp

http://us3.php.net/mysqli_select_db

<?php
$con=mysqli_connect("example.com","peter","abc123","my_db");
// Check connection
if (mysqli_connect_errno())
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }

// Create table
$sql="CREATE TABLE Persons(FirstName CHAR(30),LastName CHAR(30),Age INT)";

// Execute query
if (mysqli_query($con,$sql))
  {
  echo "Table persons created successfully";
  }
else
  {
  echo "Error creating table: " . mysqli_error($con);
  }
?>

和:

$sql = "CREATE TABLE Persons 
(
PID INT NOT NULL AUTO_INCREMENT, 
PRIMARY KEY(PID),
FirstName CHAR(15),
LastName CHAR(15),
Age INT
)";

另外,请确保您在该数据库中“已选择”,或者告诉您在哪个数据库中创建表。并且您的连接详细信息也是正确的。

答案 1 :(得分:1)

  

仅提供“连接失败:”

这是您在代码中定义的字符串 - 而不是错误消息。当您应该轮询任何错误的连接时,您只是轮询连接错误 - 即mysqli-&gt; error()。如果你这样做,它会告诉你你没有选择数据库(并且你没有在CREATE TABLE语句中明确指定数据库)。

尝试:

$qry = "CREATE DATABASE chinesegame2";       
$sql = $mysqli->query($qry);
$mysqli->select_db("chinesegame2");
...