tablena-6ren">
gpt4 book ai didi

php - MySQL 函数 Create Table 给我一个语法错误

转载 作者:太空宇宙 更新时间:2023-11-03 12:33:07 25 4
gpt4 key购买 nike

我正在创建一个登录表单,我创建了数据库,现在我正在使用这个函数创建表:

function CreateTable()
{
$qry = "CREATE TABLE $this->tablename (
'id' INT NOT NULL AUTO_INCREMENT ,
'name' VARCHAR( 128 ) NOT NULL ,
'email' VARCHAR( 64 ) NOT NULL ,
'phone_number' VARCHAR( 16 ) NOT NULL ,
'username' VARCHAR( 16 ) NOT NULL ,
'password' VARCHAR( 32 ) NOT NULL ,
'confirmcode' VARCHAR(32) ,
PRIMARY KEY ('id')
)";

if(!mysql_query($qry,$this->connection))
{
$this->HandleDBError("Error creating the table \nquery was\n $qry");
return false;
}
return true;
}

问题是每次我尝试登录以测试表单时都会收到此错误:

Error creating the table query was CREATE TABLE ( 'id' INT NOT NULL AUTO_INCREMENT , 'name' VARCHAR( 128 ) NOT NULL , 'email' VARCHAR( 64 ) NOT NULL , 'phone_number' VARCHAR( 16 ) NOT NULL , 'username' VARCHAR( 16 ) NOT NULL , 'password' VARCHAR( 32 ) NOT NULL , 'confirmcode' VARCHAR(32) , PRIMARY KEY ('id') ) mysqlerror:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '( 'id' INT NOT NULL AUTO_INCREMENT , 'name' VARC' at line 1

很明显,该行存在语法错误,但由于我没有使用 PHP 的经验,所以我看不出错误在哪里!

非常感谢任何帮助!

最佳答案

您使用的是引号而不是反引号。是的,似乎没有表名被传递到函数中。您的函数应该更像这样:

function CreateTable($tableName)
{
$qry = "CREATE TABLE IF NOT EXISTS $tableName (
`id` INT NOT NULL AUTO_INCREMENT ,
`name` VARCHAR( 128 ) NOT NULL ,
`email` VARCHAR( 64 ) NOT NULL ,
`phone_number` VARCHAR( 16 ) NOT NULL ,
`username` VARCHAR( 16 ) NOT NULL ,
`password` VARCHAR( 32 ) NOT NULL ,
`confirmcode` VARCHAR(32) ,
PRIMARY KEY (`id`)
);";

if(!mysql_query($qry,$this->connection))
{
$this->HandleDBError("Error creating the table \nquery was\n $qry");
return false;
}
return true;
}

关于php - MySQL 函数 Create Table 给我一个语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14458418/

25 4 0