PHP创建不存在的表
我有一个问题,我似乎真的解决不了,也不明白为什么它不起作用。我正在尝试使用给定的代码[OOP]创建一个数据库表: 我用这个连接到我的数据库PHP创建不存在的表,php,mysql,datatables,Php,Mysql,Datatables,我有一个问题,我似乎真的解决不了,也不明白为什么它不起作用。我正在尝试使用给定的代码[OOP]创建一个数据库表: 我用这个连接到我的数据库 public function __construct() { $this->$connection = new mysqli(host, user, password, table); $this->init_tables(); } 要测试连接并保存连接对象,我使用以下方法: public function get_conne
public function __construct() {
$this->$connection = new mysqli(host, user, password, table);
$this->init_tables();
}
要测试连接并保存连接对象,我使用以下方法:
public function get_connection(){
if ($this->$connection->connect_errno) {
return $this->$connection->connect_error;
}
else{
return true;
}
}
我使用我的_构造获取连接状态并将其保存到受保护的变量,如下所示:
class DBHandler{
protected $connection;
\uu构造将mysqli对象保存到该变量中。它曾经奏效,但现在不起作用,我似乎看不出问题所在。init_tables是一个函数,如果不存在,应该创建表。以下是该函数:
public function init_tables(){
if ($this->get_connection()) {
/* Users
-------------------------------------------------- */
$table_users = $this->prefix.'users';
$sql_users = "CREATE TABLE IF NOT EXISTS $table_users (
id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(30) NOT NULL,
password VARCHAR(128) NOT NULL,
)";
$this->$connection->query($sql_users);
/* Lists
-------------------------------------------------- */
$table_lists = $this->prefix.'lists';
$sql_lists = "CREATE TABLE IF NOT EXISTS $table_lists (
id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
iOwnerID INT(6) NOT NULL,
sListTitle VARCHAR(64) NOT NULL,
bIsClosed tinyint(1),
)";
$this->$connection->query($sql_lists);
/* Tasks
-------------------------------------------------- */
$table_tasks = $this->prefix.'tasks';
$sql_tasks = "CREATE TABLE IF NOT EXISTS $table_tasks (
id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
iListID INT(6) NOT NULL,
sTaskTitle VARCHAR(128) NOT NULL,
bIsDone tinyint(1),
)";
$this->$connection->query($sql_tasks);
}
}
我想添加一个注释,这是第一个创建表之前工作过的。这就创建了表。我复制粘贴该查询以创建所有3个。数字2和3表中的列错误地包含了错误的列。因此,我登录到我的phpmyadmin并删除了表2和表3。从那时起,它就不起作用了。它缓存了什么东西吗?我确实通过在函数内部执行一些prints()来确保调用函数。它一路工作,没有任何问题。那么问题出在哪里呢?我的柱子断了什么东西吗
我是瞎了还是瞎了?
提前谢谢。我将在这段时间内尝试寻找解决方案。我不知道sql查询最后不允许使用逗号
错:
$sql_users = "CREATE TABLE IF NOT EXISTS $table_users (
id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(30) NOT NULL,
password VARCHAR(128) NOT NULL,
)";
正确:
$sql_users = "CREATE TABLE IF NOT EXISTS $table_users (
id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(30) NOT NULL,
password VARCHAR(128) NOT NULL
)";
你的PHP错误日志有什么要说的吗?@RiggsFolly我的错,忘了包括那个。我将把它添加到帖子中。@El_Vanja没有检查它们,因为我不知道日志在哪里。我会尝试找到它们。当然如果($this->$connection->connect_errno){
只有在出现错误时才是真的,例如>0
,所以该方法有点混乱。您是否打开了错误显示并再次尝试,以查看PHP是否会报告任何内容?