繁体   English   中英

mysql使用本地数据库项目中的模式在php中创建新数据库时创建数据库结构

[英]mysql use schema from local db project to create db structure upon new db creation in php

我一直在本地主机上的一个项目上工作,我想使用本地应用程序在实时站点上使用的数据库结构。 我已经完成了一个mysql dump,并尝试将其添加到我的pdo db创建脚本(在实时站点上),但是创建db时它们没有结构。 我不确定自己在做什么错,并且无法找到任何示例。 我不太确定我错过了什么指针会很棒。 提前致谢

代码前

$host="localhost"; 
$root="root"; 
$root_password="root"; 
$user='newuser';

$pass='newpass';
$db= 'companyid' . $companyid; 
    try {
        $dbh = new PDO("mysql:host=$host", $root, $root_password);

        $dbh->exec("CREATE DATABASE `$db`;
                CREATE USER '$user'@'localhost' IDENTIFIED BY '$pass';
                GRANT ALL ON `$db`.* TO '$user'@'localhost';
                FLUSH PRIVILEGES;
                CREATE TABLE IF NOT EXISTS `address` (
  `address` varchar(50) COLLATE latin1_general_ci NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;

-- --------------------------------------------------------

--
-- Table structure for table `checkpics`
--

CREATE TABLE IF NOT EXISTS `checkpics` (
  `image` varchar(120) COLLATE latin1_general_ci NOT NULL,
  `amount` decimal(10,0) NOT NULL,
  `date` date NOT NULL,
  `photosmall` varchar(64) COLLATE latin1_general_ci NOT NULL,
  `photobig` longblob NOT NULL,
  `timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `customerid` int(10) NOT NULL,
  `checknumber` int(10) NOT NULL,
  `checkamount` varchar(10) COLLATE latin1_general_ci NOT NULL,
  `datepaid` varchar(10) COLLATE latin1_general_ci NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;

-- --------------------------------------------------------

--
-- Table structure for table `CityStateZip`
--

CREATE TABLE IF NOT EXISTS `CityStateZip` (
  `city` varchar(30) COLLATE latin1_general_ci NOT NULL,
  `state` varchar(2) COLLATE latin1_general_ci NOT NULL,
  `zip` varchar(10) COLLATE latin1_general_ci NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;") 
        or die(print_r($dbh->errorInfo(), true));

    } catch (PDOException $e) {
        die("DB ERROR: ". $e->getMessage());
    }

好的,我知道了问题所在。 创建多个表时,必须运行单独的命令或使用mysqli multi query命令,并通过;分隔每个实例;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM