我正在创建一个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
仅提供“连接失败:”。
有什么想法?
由于
答案 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");
...