我根据需要使用它一段时间更新mysql。但是我对语法不太确定..并且需要将sql迁移到数组。
特别是
行database::query("CREATE TABLE $name($query)");
这是否转化为
CREATE TABLE bookmark(name VARCHAR(64), url VARCHAR(256), tag VARCHAR(256), id INT)
这是我猜...这是对的吗?
class table extends database
{
private function create($name, $query)
{
database::query("CREATE TABLE $name($query)");
}
public function make($type)
{
switch ($type)
{
case "credentials":
self::create('credentials', 'id INT NOT NULL AUTO_INCREMENT, flname VARCHAR(60), email VARCHAR(32), pass VARCHAR(40), PRIMARY KEY(id)');
break;
case "booomark":
self::create('boomark', 'name VARCHAR(64), url VARCHAR(256), tag VARCHAR(256), id INT');
break;
case "tweet":
self::create('tweet', 'time INT, fname VARCHAR(32), message VARCHAR(128), email VARCHAR(64)');
break;
default:
throw new Exception('Invalid Table Type');
}
}
}
答案 0 :(得分:1)
如果我已理解您要说的内容,您只需将create()
方法中的代码更改为与make()
类似,从而使create()
成为公共方法使用make()
签名并从类中删除make()
方法:
public function create($table_array)
{
foreach($table_array as $table) {
$type = $table["type"];
switch ($type)
{
case "credentials":
database::query('CREATE TABLE credentials(id INT NOT NULL AUTO_INCREMENT, flname VARCHAR(60), email VARCHAR(32), pass VARCHAR(40), PRIMARY KEY(id))');
break;
case "booomark":
database::query('CREATE TABLE boomark(name VARCHAR(64), url VARCHAR(256), tag VARCHAR(256), id INT)');
break;
case "tweet":
database::query('CREATE TABLE tweet(time INT, fname VARCHAR(32), message VARCHAR(128), email VARCHAR(64))');
break;
default:
throw new Exception('Invalid Table Type');
}
}
}