我有一个数据库架构,我从每个模块生成,如$schema
:
Array
(
[database] => Array
(
[0] => CREATE TABLE IF NOT EXISTS `test` (
`testid` VARCHAR(255) NOT NULL ,
`name` VARCHAR(45) NOT NULL ,
`type` VARCHAR(45) NOT NULL ,
`version` INT NULL ,
`info` TEXT NULL
PRIMARY KEY (`dirname`) )
ENGINE = InnoDB
DEFAULT CHARSET = utf8
)
)
Array
(
[database] => Array
(
[0] => CREATE TABLE IF NOT EXISTS `menu_test` (
`mid` VARCHAR(150) NOT NULL ,
`menu_test` VARCHAR(45) NOT NULL ,
`name` VARCHAR(150) NOT NULL ,
PRIMARY KEY (`mid`, `language`) )
ENGINE = InnoDB
AUTO_INCREMENT = 1
DEFAULT CHARSET = utf8
)
[insert] => Array
(
[0] => Array
(
[table] => menu_test
[fields] => Array
(
[mid] => menu_admin
[language] => EN
[name] => Admin
)
)
[1] => Array
(
[table] => menu_test
[fields] => Array
(
[mid] => menu_seo
[language] => EN
[name] => Menu SEO
)
)
依此类推......我需要用这个架构生成一个* .sql文件,所以我尝试了这个,但它只添加了最后一个元素!
$database = DOCUMENT_ROOT."sites/user/database.sql" ;
foreach ($schema as $type => $query)
{
switch ($type)
{
case "database" :
foreach ($query as $sql)
file_put_contents($database,$sql.";");
break ;
case "insert" :
foreach ($query as $sql)
file_put_contents($database,$sql.";");
break ;
}
}
非常感谢!
答案 0 :(得分:2)
如果filename不存在,则创建该文件。否则,将覆盖现有文件,除非设置了FILE_APPEND标志。
file_put_contents($database,$sql.";",FILE_APPEND); should work.